Excelmappen per VBA reparieren
29.11.2023 12:11:16
Wolfgang
ich muss regelmäßig mehrere hundert Excelmappen (je ca. 6 MB) archivieren, d.h. nur die relevanten Tabellenblätter in eine neue Mappe kopieren (dann 100 kb) und abspeichern. Das ganze habe ich per VBA automatisiert und läuft grundsätzlich wunderbar.
Ab und zu (nicht immer aber in vereinzelten Fällen) kommt es jedoch auch dazu, dass nach der Anweisung
Set Workbook = Excel.Application.Workbooks.Open(.xlsm)
Workbook = Nothing ist.
Mittlerweile fange ich das mit einem Popup ab, damit ich die Excelmappe reparieren kann. Und jetzt kommt es:
Ich öffne mit einem Doppelklick manuell die Arbeitsmappe und bekomme folgende Nachfrage:
Wir haben ein Problem mit einigen Inhalten in 'XYZ.xlsm' erkannt. Sollen wir so viel wie möglich wiederherstellen?
Wenn Sie der Quelle dieser Arbeitsmappe vertrauen, klicken Sie auf 'Ja'
Ich klicke dann auf "Ja", speichere die Datei nochmal und anschließend kann sie auch mit der zuvor genannten VBA-Zeile
Set Workbook = Excel.Application.Workbooks.Open(.xlsm)
ordnungsgemäß geöffnet und weiter verarbeitet werden.
Ich vermute das Problem liegt an defekten Zellen auf den Serverfestplatten, aber egal woran es liegt, ich befinde mich in einer Terminalserverumgebung des IT-Dienstleisters meines Arbeitgebers und ich habe keinen Einfluss auf die Hardware.
Mein Ansinnen geht dahin, dass ich für den Fall, dass die Arbeitsmappe nicht geöffnet werden kann, diesen Reparaturversuch, den ich bisher wie oben beschrieben manuell mache, per VBA durchführen möchte, kenne aber keine Möglichkeit, per VBA eine Excelmappe zu reparieren, ohne diese zu öffnen.
Hat dies vielleicht schon mal jemand gemacht oder kennt eine Möglichkeit, per VBA eine Excelmappe zu reparieren?