【发布时间】:2016-08-31 22:29:40
【问题描述】:
我正在尝试使用 vlookup 从 word 文档中读取字符串并从 excel 表中返回相应的值。我似乎在 vlookup 函数上收到“下标输出或范围”错误。
这是我正在查看的工作表: Sample Data
我的代码是:
Sub Autofill()
Dim oExcel As New Excel.Application
Dim testdb As Excel.Workbook
Dim testvar1 As Double
Set testdb = oExcel.Workbooks.Open("k:\SIF\Vibration\Dbase.xlsm")
testvar1 = oExcel.WorksheetFunction.VLookup("Roger", testdb.Sheets("Main").Range("A1:C4"), 2, False)
MsgBox (testvar1)
End Sub
我也尝试使用 Application.Vlookup 函数,但无济于事。遇到同样的错误。
【问题讨论】:
-
这是在黑暗中拍摄的,但您是否尝试过将 oExcel 声明为 Excel.Application?在设置 testdb 之前添加这个,设置 oExcel = new Excel.Application
-
如果工作表的名称
Main在 Dbase.xlsm 文件中不存在,您可能会收到此错误。也许有额外的空间或其他东西,检查准确性。我模拟了你的代码,看起来没问题。可能存在问题的一件事是,如果您希望返回一个字符串,您可能希望将 testvar1 更改为String而不是Double。 -
我怀疑您收到错误是因为您的
Vlookup返回错误(因为未找到),如果您的Vlookup不成功,您需要添加错误处理,请参阅链接:stackoverflow.com/questions/18063214/… -
我认为您需要在 open() 之后和 .vlookup 之前
activateexcel 窗口。根据我的经验