使用整个 sheet 作为 VLOOKUP table 数组
Using an entire sheet as the VLOOKUP table array
我有一个作品sheet完全由数据组成。工作 sheet 已在代码中声明和设置,我也在 sheet 中键入第一列。
我试过了,但出现错误,但想知道这是否可行。我可以将整个 sheet 设置为可以传递到 VLOOOKUP 中的范围吗?
.Cells(row, col) = WorksheetFunction.VLookup("key", sheet名称, [SomeCol].列, 0)
错误为 1004:无法获取 WorkSheetFunction class 的 VLOOKUP 属性。
如果数据是连续的 table(没有空行或空列),则(例如)
Range("A1").CurrentRegion
将return包含数据的范围。
.Cells(row, col) = WorksheetFunction.VLookup("key", _
Worksheets("sheetName").Range("A1").CurrentRegion, _
colNum, False)
仅供参考,如果 vlookup 找不到匹配项,上述方法将导致 运行 次错误。此版本通过删除 WorksheetFunction
:
避免了这种情况
Dim v
v = Application.VLookup("key", _
Worksheets("sheetName").Range("A1").CurrentRegion, _
colNum, False)
.Cells(row, col) = IIf(IsError(v), "Not found", v)
我有一个作品sheet完全由数据组成。工作 sheet 已在代码中声明和设置,我也在 sheet 中键入第一列。
我试过了,但出现错误,但想知道这是否可行。我可以将整个 sheet 设置为可以传递到 VLOOOKUP 中的范围吗?
.Cells(row, col) = WorksheetFunction.VLookup("key", sheet名称, [SomeCol].列, 0)
错误为 1004:无法获取 WorkSheetFunction class 的 VLOOKUP 属性。
如果数据是连续的 table(没有空行或空列),则(例如)
Range("A1").CurrentRegion
将return包含数据的范围。
.Cells(row, col) = WorksheetFunction.VLookup("key", _
Worksheets("sheetName").Range("A1").CurrentRegion, _
colNum, False)
仅供参考,如果 vlookup 找不到匹配项,上述方法将导致 运行 次错误。此版本通过删除 WorksheetFunction
:
Dim v
v = Application.VLookup("key", _
Worksheets("sheetName").Range("A1").CurrentRegion, _
colNum, False)
.Cells(row, col) = IIf(IsError(v), "Not found", v)