[英]vba vlookup loop increment +1
對於經驗豐富的專業人士來說,這應該是一個簡單的問題。
1)我正在嘗試在循環的每次迭代中將活動單元向下偏移一個。
2)我只能向下移動一個,因為我不確定可用的語法。
3)我在想the_result = the_result + 1,但這不起作用:(
Sub vlookupTest()
search = Worksheets("Sheet1").Range("B2")
For i = 2 To 5
the_result = Application.WorksheetFunction.vlookup(search, Worksheets("Sheet1").Range("F2:G5"), 2, True)
MsgBox the_result
search = ActiveCell.Offset(1, 0)
Next i
End Sub
我可以看到為什么循環只向下移動兩個單元格並被卡住,因為偏移量僅從“ B2”向下移動一個,但是不確定在這種情況下持續向下移動的正確語法
ActiveCell永遠不會更改您的代碼。
更換
search = ActiveCell.Offset(1, 0)
與
ActiveCell.Offset(1, 0).Select
search = ActiveCell
您的代碼沒有明確強制ActiveCell從Worksheets("Sheet1").Range("B2")
但是您隨后從ActiveCell偏移了。 這似乎是將值分配給search的方法的混搭。 最好避免完全依賴ActiveCell 。
Sub vlookupTest()
dim searchTerm as variant, the_result as variant
searchTerm = Worksheets("Sheet1").Range("B2").value
For i = 2 To 5
the_result = Application.WorksheetFunction.vlookup(searchTerm , Worksheets("Sheet1").Range("F2:G5"), 2, True)
MsgBox the_result
searchTerm = Worksheets("Sheet1").Range("B2").Offset(i - 1, 0).value
Next i
End Sub
就像FYI一樣,在VLOOKUP
使用True作為range_lookup參數將返回近似匹配,並且F2:F5必須以升序排序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.