我搜索了几乎所有地方,但是无法使以下代码正常工作。 我尝试通过ExecuteExcel4macro在封闭的工作簿中执行vlookup。由于我需要在不同的工作簿中找到很多值,因此在封闭的工作簿中进行处理是很有意义的:-)。
我使用了下面的代码,这些代码位于此处的一个线程中,但是如果我在excel书中输入该函数,它将无法正常工作:
=GetVlookup("D:", "testfile.xls", "Sheet1", "C1:D8", 2, "CDM-01_10")
我可以确保我的D:
上有一个名为testfile.xls
的文件,文件名为sheet1
,内容在我在此提及的范围内。但是结果是#value!
如果有人可以告诉我我做错了什么,我会非常高兴!我希望在函数中使用此功能,因为我想制作一个可以在多个工作簿中使用的价格计算加载项,因此我宁愿没有在宏中引入它。
Public Function GetVlookup(path, file, sheet, ref, Col, vVal)
' Retrieves a value from a closed workbook
Dim arg As String
' Make sure the file exists
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetVlookup = "File Not Found"
Exit Function
End If
If IsNumeric(vVal) Then
vVal = CDbl(vVal)
Else
vVal = Chr(34) & vVal & Chr(34)
End If
' Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(ref).Address(, , xlR1C1)
' Execute an XLM macro
GetVlookup = ExecuteExcel4Macro("Vlookup(" & vVal & "," & arg & "," & Col & ",0)")
End Function