我試圖在VBA中執行一系列VLOOKUP,並且認爲必須有一種方法可以批量執行EVALUATE函數,而不是單獨循環表單上的值(我已經知道該怎麼做)。但我在努力使查找值「動態」。 這是我有這麼遠:在VBA中結合EVALUATE和VLOOKUP
Dim ws1 as worksheets, ws2 as worksheet, rngJ2 as Range, Lastrow2 as long
Set ws1 = ActiveWorkbook.Sheets("Sheet1")
Set ws2 = ActiveWorkbook.Sheets("Sheet2")
LastRow2 = ws2.Cells.Find(What:="*", _
After:=Range("A1"), _
LookAt:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
set rngJ2 = ws2.range("J2:J" & Lastrow2)
現在,這裏是我想下一步該怎麼做,知道rngJ2.address(行)的部分是不正確的語法:
rngJ2.Value= Evaluate("VLOOKUP(Sheet2!I" & rngJ2.address(row) & ",Sheet1!A:H,8,FALSE)")
我正在嘗試使用rngJ2.address(row)部分來爲該範圍中的每個單元格定義相應的行,以便Cell J5使用I5作爲查找值,J12使用I12等。
Any想法?
範圍rngJ2將具有多行,Vlookup的第一個標準是一個單元格。 –
您是否將VLookUp結果放入列中?如果是這樣,您可以將公式輸入到第一個公式中,並使用Range.FillDown快速在多行中使用公式。 – Rdster