我有一组代码可以在工作表范围内的公式中查找vlookup并计算它们。这完美地工作,然后一天早上我进来了它没有。违规代码:
sValue = Application.Evaluate(sVLOOKUP)
If Len(sValue) = 0 Then sValue = "#N/A"
例如
=VLOOKUP(Box,A1:B2,2,0)
表中的
A B
Box 1
Car 2
当在问题表中手动突出显示VLOOKUP并计算一切正常时,此代码总是拉NA,因为评估总是评估为ERROR 2042
我的问题是什么可能导致EVALUATE函数在vlookup毫无疑问可评估时总是评估为ERROR 2042(NA)?
似乎潜在的问题是我使用表单工具来引用所需的子代码
Dim OutputFolder As String, GetBook As String, BookCopy As String, wb As Workbook
OutputFolder = GetFolder("C:\")
GetBook = ActiveWorkbook.Name
BookCopy = OutputFolder & "\Client Copy " & GetBook
ActiveWorkbook.SaveCopyAs BookCopy
Set wb = Workbooks.Open(BookCopy)
Dim wsDataLoad As Worksheet, wsEconomics As Worksheet, wsUI As Worksheet, wsTypeCurves As Worksheet, wsSWM As Worksheet, wsCC As Worksheet, wsSummary As Worksheet
Set wsDataLoad = wb.Sheets("DataLoad")
与formtool的交互与运行sub直接改变了sub
的所需输出答案 0 :(得分:1)
Application.Evaluate
有一个反对部分Worksheet.Evaluate
- 如果你想确保你的字符串在特定工作表的上下文中被评估,你应该使用后者,并且不只是默认为运行代码时活动的工作表。
由于您已声明字符串sVLOOKUP
包含正确的值,因此这似乎是您所看到的可能的解释。