簡體   English   中英

vba vlookup循環增量+1

[英]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

您的代碼沒有明確強制ActiveCellWorksheets("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.

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