使用整个工作表作为VLOOKUP表数组

时间:2015-02-19 00:04:47

标签: vba vlookup

我有一个完全由数据组成的工作表。工作表已声明&在代码中设置,我也在关闭工作表中的第一列。

我尝试了并且出错了,但是想知道这是否可行。我可以将整个工作表设置为可以传递到VLOOOKUP的范围吗?

.Cells(row,col)= WorksheetFunction.VLookup(“key”,sheetname,[SomeCol] .Column,0)

错误是1004:无法获取WorkSheetFunction类的VLOOKUP属性。

1 个答案:

答案 0 :(得分:1)

如果数据是连续表(没有空行或列),则(例如)

Range("A1").CurrentRegion

将返回包含数据的范围。

.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)