【发布时间】:2013-08-06 01:28:08
【问题描述】:
我在使用 VBA 更改 Excel 工作簿上的文件访问模式时遇到问题。我正在使用 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
是否可以像我尝试的那样在文件访问模式之间进行更改?
【问题讨论】: