У меня проблемы с изменением режима доступа к файлам в книгах Excel с использованием VBA. Я использую Office 2010.
Я хочу иметь возможность переключаться между режимами только чтение и чтение и запись в зависимости от ситуации. Однако кажется, что изменение рабочей книги с чтения / записи на чтение только и затем обратно, как показано в приведенном ниже коде, приводит к ошибке автоматизации при попытке доступа к любому элементу объекта рабочей книги.
Public Sub example()
Dim w As Workbook
'open workbook with write access
Set w = Workbooks.Open("example.xlsx", ReadOnly:=False)
Debug.Print w.Name 'sucessfully accesses members of w
'change file access to read only
w.ChangeFileAccess XlFileAccess.xlReadOnly
Debug.Print w.Name 'successfully accesses members of w
'change file access back to read/write
w.ChangeFileAccess XlFileAccess.xlReadWrite
Debug.Print w.Name 'fails to access members of w with automation error
End Sub
Я не понимаю, почему это так. Очевидно, что вполне возможно открыть книгу только для чтения, изменить ее на чтение и запись, а затем продолжить использовать объект. Почему эта ситуация отличается? Я не могу найти упоминания об этом поведении в MSDN.
http://msdn.microsoft.com/en-us/library/ff193344.aspx
Можно ли переключаться между режимами доступа к файлам, как я пытаюсь сделать?