猿问

在vba excel使用ExecuteExcel4Macro出现#ref的问题,该怎么办?

这样一个函数:
Private Function GetValue(path, file, sheet, ref)
' 从未打开的Excel文件中检索数据
Dim arg As String
' 确保该文件存在
If Right(path, 1) <> "" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
' 创建变量
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Address(, , xlR1C1, False)
' 执行XLM 宏
GetValue = ExecuteExcel4Macro(arg)
End Function
................................................................................................................
在A工作簿中调用B工作簿和C工作簿中的数据,调用B没有任何问题,调用C工作簿中的数据出现#REF,如果把C工作簿执行一次打开关闭动作(保存或不保存均可),再从A中调用C则问题消失。也就是说,同样的代码,调用一些工作簿表可以,另一些工作簿报错,报错的工作表执行一次打开关闭动作问题消失。我确定路径文件名都没有问题。“更新指向其他文档的链接”被选中。谢谢指导!

猛跑小猪
浏览 334回答 1
1回答

蝴蝶不菲

Sub Sample()Dim wbPath As String, wbName As StringDim wsName As String, cellRef As StringDim Ret As String'wbPath = "C:\Documents and Settings\Siddharth Rout\Desktop\"wbPath = "C:\Users\my.name\Desktop\"wbName = "QOS DGL stuff.xls"wsName = "ACL"cellRef = "C3"Ret = "'" & wbPath & "[" & wbName & "]" & _wsName & "'!" & Range(cellRef).Address(True, True, -4150)MsgBox ExecuteExcel4Macro(Ret)End Sub
随时随地看视频慕课网APP
我要回答