Excel VBA-不从集合字段加载文件

Excel VBA-不从集合字段加载文件,excel,vba,Excel,Vba,我已将我的工作表设置为具有参数部分,以便用户可以设置工作表,然后只更新特定区域。其中两个参数是外部文件,它们是“黑匣子”计算模块 这些设置具有完整路径,并存储在图纸上的单元格中 在开始计算过程时,会加载以下代码 completefilepath=PathToFile&“\”&nameofile '将目标工作簿设置为变量。如果出现错误 '已生成,则工作簿未打开,请打开它 出错时继续下一步 设置wbTarget=工作簿(文件名) 如果错误号为0,则 '打开工作簿 呃,明白了 设置wbTarget=W

我已将我的工作表设置为具有参数部分,以便用户可以设置工作表,然后只更新特定区域。其中两个参数是外部文件,它们是“黑匣子”计算模块

这些设置具有完整路径,并存储在图纸上的单元格中

在开始计算过程时,会加载以下代码

completefilepath=PathToFile&“\”&nameofile
'将目标工作簿设置为变量。如果出现错误
'已生成,则工作簿未打开,请打开它
出错时继续下一步
设置wbTarget=工作簿(文件名)
如果错误号为0,则
'打开工作簿
呃,明白了
设置wbTarget=Workbooks.Open(NameOfFile,UpdateLinks:=False)
CloseIt=True
如果结束
'检查并确保工作簿已打开
如果错误编号=1004,则
MsgBox“很抱歉,您指定的文件不存在!”_
&vbNewLine和NameOfFile
出口接头
如果结束
我遇到的问题是,当我运行代码时,它会说找不到文件。如果我去,通过重新选择文件(我有一个filedialog设置来执行此操作)重置参数表中的字段,那么代码工作正常,文件打开。从本质上说,这意味着每次关闭工作表后,在运行计算之前都必须对文件进行重新定位。有人知道这是什么原因吗?

在您的代码行中

Set wbTarget = Workbooks.Open(NameOfFile, UpdateLinks:=False)
您只指定文件名,不指定路径。这将尝试从当前路径(可能不是预期路径)打开文件。一旦您使用了
OpenFile
对话框并浏览到您的文件,当前路径就会更新,代码就会生效

你可能是说

Set wbTarget = Workbooks.Open(completefilepath , UpdateLinks:=False)

谢谢你抓住了!使用错误的变量会导致错误!
Set wbTarget = Workbooks.Open(NameOfFile, UpdateLinks:=False)
Set wbTarget = Workbooks.Open(completefilepath , UpdateLinks:=False)