Problem mit dem Schließen der Excel-Anwendung
27.06.2007 12:31:54
Meyer
In der Exel-Datei werden einige Formatierungen vorgenommen und anschliessend wird die Excel-Anwendung geschlossen.
Wenn ich in der Excel-Datei "Fenster fixieren" möchte, dann schliesst die Exel-Anwedung nicht mehr.
Hier der funktionierender Code
------------
Dim ObjExcel As Excel.Application '|-- Objekte für Excel Anwendung
Dim ObjBook As Workbook '|-- Objekte für Excel Anwendung
Dim ObjSheet As Worksheet '|--Objekte für Excel Anwendung
....
Set ObjExcel = New Excel.Application
Set ObjBook = ObjExcel.Workbooks.Open(Pfad)
Set ObjSheet = ObjBook.ActiveSheet
..
Abfrage starten, als Excel-Datei speichern, Excel-Datei formatieren
..
..
ObjBook.Save
Excel schliessen
ObjBook.Close True
ObjExcel.Quit
Set ObjSheet = Nothing
Set ObjExcel = Nothing
Set ObjBook = Nothing
ab hier ist Excel geschlossen
...
------------
Wenn ich die Option Fenster fixieren einsetze mit dem Befehl
ActiveWindow.FreezePanes = True
Code dazu
-----------------
Dim ObjExcel As Excel.Application ' |-- Objekte für Excel Anwendung
Dim ObjBook As Workbook ' |-- Objekte für Excel Anwendung
Dim ObjSheet As Worksheet ' |-- Objekte für Excel Anwendung
....
Set ObjExcel = New Excel.Application
Set ObjBook = ObjExcel.Workbooks.Open(Pfad)
Set ObjSheet = ObjBook.ActiveSheet
..
Abfrage starten, als Excel-Datei speichern, Excel-Datei formatieren
..
Fenster fixieren
ObjSheet.Range("A2").Select
ActiveWindow.FreezePanes = True
..
..
ObjBook.Save
Excel schliessen
ObjBook.Close True
ObjExcel.Quit
Set ObjSheet = Nothing
Set ObjExcel = Nothing
Set ObjBook = Nothing
ab hier soll Excel geschlossen werden, tut es aber nicht
...
-------
Mein Lösungsversuch 1:
ObjBook.Windows(1).Close oder
ActiveWindow.Close oder
ObjBook.Windows.Item(1).Close
vor dem ObjBook.close zu setzen
Das Ergebnis dazu:
eine Fehlermeldung beim Versuchen das Objekt ObjBook zu schliessen (ObjBook.close ):
"Laufzeitfehler v'-2147417848 (80010108)': Automatisierungsfehler. Das aufgerufene Objekt wurde von dem Client getrennt"
Mein Lösungsversuch 2:
Wenn ich zuerst ObjBook schliesse: ObjBook.close
und dann
ObjBook.Windows(1).Close bzw. ActiveWindow.Close bzw. ObjBook.Windows.Item(1).Close
Erscheint die Meldung: Objektvariable oder With- Blockvariable nicht festgelegt
Hat jemand eine Idee wie ich diese zwei Objekt OjbBook und deren unterobjekt ObjBook.Windows(1) schliessen kann ohne dass einer dem anderen "vermisst"?