Excel-VBA-Arbeitsmappe.ChangeFileAccess

Ich habe Probleme mit dem ändern der Datei Zugriffsmodus auf Excel-Arbeitsmappen mit VBA. Ich bin mit Office 2010.

Ich möchte in der Lage sein, abwechseln zwischen nur Lesen und Lesen-write-Modus als angemessen. Allerdings scheint es das ändern einer Arbeitsmappe von Lesen/schreiben nur Lesen nur Lesen und dann wieder zurück, wie in den folgenden code verursacht einen automation-Fehler beim Zugriff auf ein Mitglied des workbook-Objekts.

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

Ich verstehe nicht, warum dies der Fall ist. Es ist offensichtlich durchaus möglich ist, eine Arbeitsmappe öffnen, als nur zu Lesen, ändern Sie es zu Lesen, zu schreiben und dann weiter um das Objekt. Warum ist diese situation anders? Ich finde keine Erwähnung von diesem Verhalten auf der MSDN-Website.
http://msdn.microsoft.com/en-us/library/ff193344.aspx

Ist es möglich, ändern von Datei-Zugriffsarten, wie ich bin versucht, zu tun?

InformationsquelleAutor Thomas Wilkins | 2011-02-17

Schreibe einen Kommentar