我正在尝试将 HLookup 与 vba 一起使用,但是当我尝试 vba 代码时,我无法将其应用于多行,它只能用于单行“J2”,我需要 HLookup vba 代码用于多行“J2” “直到“J1001”,查找值“A2”直到“A1001”,我应该使用什么vba代码?
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Range("J2").Value = WorksheetFunction.HLookup(Range("A2"), Sheets("Input").Range("C4:ALN14"), 3, False)
Application.EnableEvents = True
End Sub
以下子项将刷新您对您指定的任何范围的查找:
Sub refresh_rows(rg As Range)
Application.EnableEvents = False
For r = rg.Row To rg.Row + rg.Rows.Count - 1
Range("J" & r).Value = WorksheetFunction.HLookup(Range("A" & r).Value, _
Sheets("Input").Range("C4:ALN14"), 3, False)
Next
Application.EnableEvents = True
End Sub
因此您可以使用它来刷新所有内容:
refresh_rows range("J2:J1001")
或者您可以仅刷新用户使用以下方法更新的行:
Private Sub Worksheet_Change(ByVal Target As Range)
refresh_rows Target
End Sub