2015-05-29 3 views
0

Чтобы учесть проблему, с которой я столкнулся - имейте в виду, что я относительный новичок. Я пытаюсь написать код, который откроется, а затем закроет серии книг, содержащихся в папке, в конечном счете, чтобы обновить ряд VLookups на основной листе данных (так как для их обновления я считаю, что иждивенцы должны быть открыты).1004 Ошибка чтения только при открытии закрытых книг в VBA

Прямо сейчас, я просто пытаюсь сделать это для одного из файлов, которые я могу выполнить и сделать для остальной части папки. Однако, когда я пытаюсь открыть файл, я получаю «Ошибка времени выполнения 1004» с сообщением «Excel не может получить доступ к« FolderName ». Документ может быть доступен только для чтения или зашифрован«

Код, который я используя это:

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

Почему так много строк кода закомментированы в вашем примере? Особенно строка, определяющая Fname. – TMH8885

+0

@ TMH8885, я думаю, что OP пытается предоставить минимальный случай для показа его ошибки. По крайней мере, это то, что я бы сделал ... – FreeMan

ответ

0

Ваш код пытается открыть файл с именем c:\FolderPathFilename.xlsm. Если этот файл не существует в корневом каталоге вашего C:, вы получите ошибки.

Это может быть больше того, что вы после:

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

Примечание:

  1. \ добавляется к концу Fname.
  2. + заменен на &. VBA использует & для конкатенации.

Конечно, ваш образец кода, кажется, очень вырезанная версия того, что вы действительно выполняете, так что это может быть не проблема в вашем реальном коде.

Смежные вопросы