[英]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
循環中的行號推進A列和B列。
根據我的喜好(僅),我聲明並將“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.