使用整个 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)