Microsoft Excel

Herbers Excel/VBA-Archiv

Problem mit dem Schließen der Excel-Anwendung

Betrifft: Problem mit dem Schließen der Excel-Anwendung von: Meyer
Geschrieben am: 27.06.2007 12:31:54

Habe einen VB-Modul in Access, welches eine Datenbank-Abfrage startet und das Resultat als eine Exel-Datei speichert.
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"?


  

Betrifft: AW: Problem mit dem Schließen der Excel-Anwendung von: Oberschlumpf
Geschrieben am: 27.06.2007 21:30:04

Hallo

dann dein Text

Auf wiedersehen




....vor allem ersteres und letzteres wär ne schöne Idee gewesen


  

Betrifft: AW: Problem mit dem Schließen der Excel-Anwendung von: Meyer
Geschrieben am: 29.06.2007 08:57:03

Die Lösung ist: statt
ActiveWindow.FreezePanes = True
den Befehl
ObjExcel.ActiveWindow.FreezePanes = True
zu benutzen.
Danach werden alle Objekte wie erwartet geschlossen.


 

Beiträge aus den Excel-Beispielen zum Thema "Problem mit dem Schließen der Excel-Anwendung"