在VBA中打开已关闭的工作簿时出现1004只读错误

时间:2015-05-29 16:41:24

标签: excel vba excel-vba

为我面临的问题提供背景信息 - 请记住我是相对新手 - 我正在尝试编写一个代码,该代码将打开然后关闭一个文件夹中包含的一系列工作簿,最终是为了更新主数据表上的一些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

我试图将文件夹的设置从非读取更改,但我不认为这是手头的问题。

是否有人遇到类似问题或者可以考虑解决此特定问题?或者,如果有更好的方式来思考这一挑战,那将非常感激。

1 个答案:

答案 0 :(得分:0)

您的代码正在尝试打开名为c:\FolderPathFilename.xlsm的文件。除非该文件存在于C:驱动器的根目录中,否则您将收到错误消息。

这可能是您所追求的更多内容:

Fname = "C:\FolderPath\"
Openr = Dir(Fname & "Filename.xlsm")
Workbooks.Open (Fname)

注意:

  1. \添加到Fname
  2. 的末尾
  3. +替换为&。 VBA使用&进行连接。
  4. 当然,您的代码示例似乎确实是您正在执行的内容的一个非常简化的版本,因此这可能不是您真实代码中的问题。

相关问题