问题描述
我有一张有两列的工作表。 “A”列包含人员姓名,“B”列包含员工 ID。
我读到 VLookup 需要查找范围的第一列。就我而言,我必须对 B 列进行 VLookup 并从 A 列中获取相应的值。
我正在尝试这段代码,但显然它不起作用。
strEmp = Application.WorksheetFunction.VLookup(strEID,wsLookup.Range("B:A").Value,1,False)
** 尝试 **
尝试的解决方案建议作为答案之一。还是没收到。
strEmp = WorksheetFunction.Match(strEID,wsLookup.Range("A2:B500"),0)
解决方法
您需要结合使用 INDEX
和 MATCH
。
使用 MATCH
查找 B 列中包含您要查找的员工 ID 的行。然后使用INDEX
函数在A列中查找对应的名称
在 VBA 中你只需要 Match
:
Dim TableRange as Range
Set TableRange = wsLookup.Range("A:B")
Dim matchRow
matchRow = Application.Match(strEID,TableRange.Columns(2),0)
If Not Iserror(matchRow) then strEmp = TableRange.Cells(matchrow,1)