Excel-Automation .Quit funktioniert nicht

26/05/2008 - 22:32 von Thomas Winkler | Report spam
Hi,

habe ein Problem mit einer Excel-Instanz, welche sich nach einem Import
nach Access nicht mittels .Quit beenden làsst. Im Code tritt kein Fehler
auf, allerdings ist nach .Quit das App-Objekt noch gefüllt und der
Taskmanager zeigt noch die excel.exe an.

Habe schon über "unqualified statements" gelesen, was auch genau mein
Problem trifft.

http://www.tushar-mehta.com/excel/v...esnt_quit/
http://support.microsoft.com/defaul...-us;319832

Habe alle Vorschlàge zur Lösung befolgt, jedoch leider das Problem nicht
lösen können.

Habt Ihr vielleicht noch einen Tip für mich?

Hier der Code:

Dim appXL As Object
Dim wbkXL As Object
Dim shtXL As Object
Dim celXL As Object

Set appXL = CreateObject("Excel.Application")

For Each shtXL In wbkXL.Sheets
shtXL.Activate
shtXL.Cells(1, x).Value = strDummy$
shtXL.Columns(y).NumberFormat = rstImportTablesFields("NumberFormat")

For Each celXL In shtXL.Range(shtXL.Cells(2, z),
shtXL.Cells(shtXL.UsedRange.Rows.Count, z))
celXL.Value2 = CStr(celXL.Value2)
Next celXL
Next shtXL

wbkXL.Save
wbkXL.Close False
Set wbkXL = Nothing

appXL.Quit
Set appXL = Nothing

Habe das Gefühl, dass es an celXL liegt, jedoch keine Ahnung, wie ich
das anders formulieren könnte.

THX

Thomas
 

Lesen sie die antworten

#1 Peter Doering
26/05/2008 - 22:45 | Warnen spam
Hallo Thomas,

Thomas Winkler wrote:

habe ein Problem mit einer Excel-Instanz, welche sich nach einem Import
nach Access nicht mittels .Quit beenden làsst. Im Code tritt kein Fehler
auf, allerdings ist nach .Quit das App-Objekt noch gefüllt und der
Taskmanager zeigt noch die excel.exe an.
[...]
Hier der Code:

Dim appXL As Object
Dim wbkXL As Object
Dim shtXL As Object
Dim celXL As Object

Set appXL = CreateObject("Excel.Application")

For Each shtXL In wbkXL.Sheets
shtXL.Activate
shtXL.Cells(1, x).Value = strDummy$
shtXL.Columns(y).NumberFormat = rstImportTablesFields("NumberFormat")

For Each celXL In shtXL.Range(shtXL.Cells(2, z),
shtXL.Cells(shtXL.UsedRange.Rows.Count, z))
celXL.Value2 = CStr(celXL.Value2)
Next celXL
Next shtXL

wbkXL.Save
wbkXL.Close False



Set shtXL = Nothing
Set celXL = Nothing

Set wbkXL = Nothing

appXL.Quit
Set appXL = Nothing



Gruss - Peter

Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen