首页 > 解决方案 > 如何在 VBA 中循环下面的代码,同时每次降级。当最后一步下降时循环将停止,在单元格中没有值

问题描述

'我希望在 Excel 中制作一个打印所有按钮。我有当天发货的所有零件的垂直清单。我正在复制零件编号并粘贴在运输标签(单独的纸)上。粘贴零件编号后,运输标签将通过 Vlookup 填充来自主列表的源数据(即零件/数量/等的描述)。所以我希望始终从运输清单上的 C5 开始,然后复制/粘贴/打印标签/返回到列表/降级/选择/复制/粘贴/打印标签/返回到列表..如果在最后一步没有返回值,则函数应该停止。所以这将是一个循环'

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

标签: excelvbaloops

解决方案


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

推荐阅读