为我面临的问题提供背景信息 - 请记住我是相对新手 - 我正在尝试编写一个代码,该代码将打开然后关闭一个文件夹中包含的一系列工作簿,最终是为了更新主数据表上的一些VLookup(因为要更新它们,我相信需要开放的家属)。
现在,我只是尝试为其中一个文件执行此操作,然后我可以对文件夹的其余部分执行此操作。当我尝试打开文件时,我得到了"运行时错误1004"消息" Excel无法访问' FolderName'。该文件可能是只读的或加密的#34;
我使用的代码是:
sub openevery_v2()
' openevery_v2 Macro
' Keyboard Shortcut: Ctrl+Shift+O
' Dim diaFolder As FileDialog <-- Ideally the user would use a dialog box to select the folder
' Dim Fname As String
' Dim originalWB As Workbook
' Set originalWB = ThisWorkbook
' originalWB.Save
' Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
' diaFolder.AllowMultiSelect = False
' diaFolder.Show
' Fname = diaFolder.SelectedItems(1)
Fname = "C:\FolderPath"
Openr = Dir(Fname + "Filename.xlsm")
Workbooks.Open (Fname)
End Sub
我试图将文件夹的设置从非读取更改,但我不认为这是手头的问题。
是否有人遇到类似问题或者可以考虑解决此特定问题?或者,如果有更好的方式来思考这一挑战,那将非常感激。
答案 0 :(得分:0)
您的代码正在尝试打开名为c:\FolderPathFilename.xlsm
的文件。除非该文件存在于C:
驱动器的根目录中,否则您将收到错误消息。
这可能是您所追求的更多内容:
Fname = "C:\FolderPath\"
Openr = Dir(Fname & "Filename.xlsm")
Workbooks.Open (Fname)
注意:
\
添加到Fname
。+
替换为&
。 VBA使用&
进行连接。当然,您的代码示例似乎确实是您正在执行的内容的一个非常简化的版本,因此这可能不是您真实代码中的问题。