我有以下代码。代码仅适用于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
答案 0 :(得分:1)
我假设(通过代码的逻辑)你的意思是按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
答案 1 :(得分:0)
只需使用i
循环
For
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