vba 重复代码直到 a 列为空

vba repeating code untill column a will be empty

我如何创建重复代码直到 columna a 值为空的代码

这是我的代码。

Sheets("sheet4").Select
Sheets("sheet4").Range("$A:$AG36").AutoFilter Field:=1, Criteria1:= _
   Sheets("sheet1").Range("a3")
Sheets("sheet4").Range("a1:ad1").find(Sheets("sheet1").Range("L3").Value).offset(2, 0).Select
       Do Until ActiveCell.EntireRow.Hidden = False
         ActiveCell.offset(2, 0).Select
       Loop
Selection.Copy Sheets("sheet1").Range("b3")
Sheets("sheet1").Select
End Sub

我需要向下复制我的选择,直到 a 列结束(我的意思是 a 列中的单元格将为空)。你能帮帮我吗??

用变量替换 3 并将代码放入循环中。

Option Explicit

Sub macro()
    Dim wb As Workbook
    Dim ws1 As Worksheet, ws4 As Worksheet
    Dim colA, colL, iRow As Long

    Set wb = ThisWorkbook
    Set ws1 = wb.Sheets("Sheet1")
    Set ws4 = wb.Sheets("Sheet4")
    ws4.Select

    iRow = 3
    colA = ws1.Cells(iRow, "A")
    Do While Len(colA) > 0
        
        colL = ws1.Cells(iRow, "L")
        If Len(colL) > 0 Then
            ' apply filter
            ws4.Range("A1:AG2336").AutoFilter Field:=1, Criteria1:=colA
            ' copy filtered data
            ws4.Range("A1:AD1").Find(colL).Offset(2, 0).Select
            Do Until ActiveCell.EntireRow.Hidden = False
                ActiveCell.Offset(2, 0).Select
            Loop
            Selection.Copy ws1.Range("B" & iRow)
            '
        End If
        ' next value in col A
        iRow = iRow + 1
        colA = ws1.Cells(iRow, "A")

    Loop
    MsgBox iRow - 3 & " rows scanned on " & ws1.Name, vbInformation
End Sub