Как мне l oop приведенный ниже код в VBA, при этом уходя каждый раз. L oop остановится, когда последний шаг вниз, не имеет значения в ячейке - PullRequest
0 голосов
/ 17 января 2020

'Я хочу сделать кнопку печати всех в Excel. У меня есть вертикальный список всех запчастей, отправляемых в этот день. Я копирую номер детали и вставляю наклейку с отгрузкой (отдельный лист). Как только номер детали вставлен, этикетка отгрузки заполняется исходными данными из основного списка через Vlookup (ie Описание части / qty / et c) .. Поэтому я бы хотел всегда начинать с C5 в списке отгрузки, затем копировать / вставить / распечатать этикетку / вернуться к списку / перейти вниз / выбрать / скопировать / вставить / распечатать этикетку / вернуться к списку ... если на последнем шаге вниз значение не возвращается, функция должна быть остановлена. Так что это будет L oop '

Sub print_all_test()
'
' print_all_test Macro
'
'
    Sheets("Weight Calculator").Select
    Range("C5").Select
    Selection.Copy
    Sheets("SJ Tag Print All").Select
    Range("C7:J7").Select
    ActiveSheet.Paste
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
    Sheets("Weight Calculator").Select

End Sub

Ответы [ 2 ]

0 голосов
/ 17 января 2020

Предполагается, что «шаг вниз» означает переход к следующей строке (ячейка C6 после обработки ячейки C5), затем:

Sub print_all_test()
'
' print_all_test Macro
'
'

    'Lets get this worksheet into a variable so we can reference it easier
    Dim wcSheet as Worksheet
    Set wcSheet = Sheets("Weight Calculator")

    'Declare a variable for whatever cell we are doing the print on
    Dim printCell as Range

    'Loop through cells. 
    For each printCell In Range wcSheet.Range("C5:C5000")
         'Check if printCell has a value, if not then exit this loop
         If printCell.Value = "" Then Exit For
         'Copy and Paste
         printCell.Copy Destination:=Sheets("SJ Tag Print All").Range("C7:J7")

         Sheets("SJ Tag Print All").PrintOut Copies:=1, Collate:=True, _
             IgnorePrintAreas:=False
    Next printCell

End Sub
0 голосов
/ 17 января 2020
Sub test()
    Dim lastrow As Long
    Dim i As Long
    lastrow = Sheets("Weight Calculator").Cells(Sheets("Weight Calculator").Rows.Count, 3).End(xlUp).Row 'Get last row in column C

    For i = 5 To lastrow
        Sheets("SJ Tag Print All").Range("C7:J7").Value = Sheets("Weight Calculator").Range("C" & i).Value
        'Do whatever else you need to do, like printing.
    Next i

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...