【发布时间】:2015-09-23 15:51:29
【问题描述】:
我正在尝试在 VBA 中编写一个引用另一个文件的 VLookup 表。这是我的目标的简单概述:
- 在另一个 Excel 文件的单元格 A2 中查找值
- 从另一个 Excel 文件的第 2 列中提取信息并放在单元格 B2 中
- 移动到单元格 A3 并重复该过程,直到 A 列中没有更多条目
这是我已经拥有的代码。我不断收到一条错误消息,提示“无法获取 WOrksheetFunction 类的 VLookup 属性”。我检查了引用该错误的其他帖子,但它们没有任何帮助。你们都在我的代码中看到错误吗?或者有没有人有更好的方法来完成这项任务?
Sub SBEPlannerAdder()
Dim wbk As Workbook
Set wbk = Workbooks.Open("C:\Users\user\Documents\Support File\Planner.xlsx")
With Sheets("Sheet1")
' Selects the first cell to check
Range("A2").Select
Dim x As Variant
x = wbk.Worksheets("Sheet1").Range("A1:C1752")
' Loops through all rows until an empty row is found
Do Until IsEmpty(ActiveCell)
Range(ActiveCell.Offset(0, 1) & ActiveCell.Row).Value = Application.WorksheetFunction.VLookup((ActiveCell.Column & ActiveCell.Row), x, 2, 0)
ActiveCell.Offset(1, 0).Select
Loop
End With
Call wbk.Close(False)
End Sub
【问题讨论】:
-
这可能是因为 vlookup 没有返回值,或者换句话说,结果是“N/A”。如果是这种情况,请删除
.worksheetFunction并运行它,然后您将需要一个 if 语句来处理“N/A”。 -
你不能在工作表本身中使用 vlookup。那么作为引用其他文件和范围的函数呢?您的搜索字符串是 Column & Row,这将导致一个数字作为字符串。这是故意的吗?