簡體   English   中英

vba 中的 application.worksheetfunction.vlookup 不循環

[英]application.worksheetfunction.vlookup in vba does not loop

我有以下代碼。 該代碼僅適用於 1 個單元格,因此我認為不會發生循環過程。 誰能幫我弄清楚如何使循環工作?

Sub test4()

Dim i As Long
Dim lr As Long

lr = Sheets("sheet2").Range("a" & Rows.Count).End(xlUp).Row

    For i = 1 To lr
        Sheets("sheet2").Range("b1") = Application.WorksheetFunction.vlookup(Sheets("sheet2").Range("A1"), Sheets("sheet1").Range("A1:g10"), 2, False)

    Next i

End Sub

我假設(根據您的代碼邏輯)您的意思是通過For循環中的行號推進AB列。

根據我的喜好(僅),我聲明並將“sheet2”設置為一個變量,然后使用With Sht2 ,使代碼更清晰易讀,並且應該消除可能的錯誤。

Sub test4()

Dim i As Long
Dim lr As Long
Dim Sht2    As Worksheet

' is it "sheet2" or "Sheet2"
Set Sht2 = ThisWorkbook.Sheets("sheet2")

' finding last row is Column "A"
lr = Sht2.Cells(Sht2.Rows.Count, "A").End(xlUp).Row

With Sht2
    For i = 1 To lr
        .Range("B" & i) = Application.WorksheetFunction.VLookup(.Range("A" & i), Sheets("sheet1").Range("A1:G10"), 2, False)
    Next i
End With

End Sub

只需在For循環中使用i如下

Sub test4()

Dim i As Long
Dim lr As Long

lr = Sheets("sheet2").Range("a" & Rows.Count).End(xlUp).Row

    For i = 1 To lr
        Sheets("sheet2").Range("b" & i) = Application.WorksheetFunction.vlookup(Sheets("sheet2").Range("A" & i), Sheets("sheet1").Range("A1:g10"), 2, False)

    Next i

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM