VBA를 사용하여 Excel 통합 문서에서 파일 액세스 모드를 변경하는 데 문제가 있습니다. Office 2010을 사용하고 있습니다.Excel VBA Workbook.ChangeFileAccess
적절한 경우 읽기 전용 모드와 읽기 쓰기 모드를 교대로 사용하고 싶습니다. 그러나 통합 문서를 읽기/쓰기에서 읽기 전용으로 변경 한 다음 다시 아래 코드 에서처럼 통합 문서 개체의 모든 구성원에 액세스하려고하면 자동화 오류가 발생합니다.
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
내가하려는 것처럼 파일 액세스 모드를 변경할 수 있습니까?
하지만 당신은 이상적인 거리가 멀다 맞아 - 내 실제 코드에서 나는 상태를 변경 지점에서 쉽게 접근 할 수없는 흩어져 참조를 가지고있다. 또한 Workbooks.Open을 사용하여 통합 문서를 읽기 전용으로 연 다음 파일 액세스를 읽기 쓰기로 변경하면 참조가 유효합니다. –
예, 읽기 - 쓰기 방향 만 다시 열립니다. :( –
이 예제는 그 방향으로 가고 있지만 작동합니다 - –