我已将我的工作表设置为具有参数部分,以便用户可以设置工作表,然后只更新特定区域。其中两个参数是外部文件,即“黑匣子”计算模块。
这些是完整路径设置并存储在工作表的单元格中。
在开始计算过程时,他们会加载以下代码
'Set file name and location. NameOfFile = ActiveWorkbook.Worksheets("Parameters").Cells(8, 2).Value PathToFile = Left$(NameOfFile, InStrRev(NameOfFile, "\") - 1) FileNameNoPath = Mid$(NameOfFile, InStrRev(NameOfFile, "\") + 1) NameOfFile = FileNameNoPath
completefilepath = PathToFile & "\" & NameOfFile
'set the target workbook to a variable. If an error is
'generated, then the workbook is not open, so open it
On Error Resume Next
Set wbTarget = Workbooks(NameOfFile)
If Err.Number <> 0 Then
'Open the workbook
Err.Clear
Set wbTarget = Workbooks.Open(NameOfFile, UpdateLinks:=False)
CloseIt = True
End If
'Check and make sure workbook was opened
If Err.Number = 1004 Then
MsgBox "Sorry, but the file you specified does not exist!" _
& vbNewLine & NameOfFile
Exit Sub
End If
我遇到的问题是,当我运行代码时,它说找不到文件。如果我去,通过重新选择文件重置参数表中的字段(我有一个filedialog设置来执行此操作),然后代码完美运行并打开文件。基本上这意味着每次关闭工作表后,在运行计算之前都要重新包含文件。有谁知道这可能是什么原因?
答案 0 :(得分:2)
在您的代码行中
Set wbTarget = Workbooks.Open(NameOfFile, UpdateLinks:=False)
您只指定文件名,没有路径。这将尝试从当前路径打开文件,该路径可能不是预期的路径。使用OpenFile
对话框并浏览到您的文件后,将更新当前路径,然后代码将起作用。
你可能意味着
Set wbTarget = Workbooks.Open(completefilepath , UpdateLinks:=False)