Ganymed Geschrieben 12. März 2003 Geschrieben 12. März 2003 Hallo, ich bearbeite von VB aus eine Excel-Datei (lesen und schreiben). Mit Hilfe eines Buttons soll ein VB Formular UND das im Hintergrund (nicht sichtbare) Excel geschlossen werden. Im Taskmanager sehe ich den Prozess trotz diesen Codes immernoch: Public Sub EClose() Excel.ActiveWorkbook.Save Excel.Quit Set Excel = Nothing End Sub Wieso wird der Prozess nicht geschlossen???? Was kann ich machen??? Gruß Zitieren
Klotzkopp Geschrieben 12. März 2003 Geschrieben 12. März 2003 Vielleicht wird nur eine MessageBox angezeigt. Mach Excel doch mal testweise sichtbar, vielleicht erkennt man dann, woran es liegt. Mit Excel.DisplayAlerts = False müsstest du MessageBoxen unterdrücken können. Zitieren
Ganymed Geschrieben 12. März 2003 Autor Geschrieben 12. März 2003 Hab ich mal ausprobiert an den Boxen liegt es nicht. VB "killt" den Prozess erst, wenn ich meine VB Anwendung auch geschlossen habe... Das ist dumm, denn wenn ich eine weitere Excel-Datei während es Programmablaufes einlesen will, überschreibt er meine Dateien gegenseitig... Zitieren
Klotzkopp Geschrieben 12. März 2003 Geschrieben 12. März 2003 Machst du irgendwo noch eine "Kopie" von dem Excel-Objekt oder einem seiner Unterobjekte, die du nicht wieder freigibst? Zitieren
Ganymed Geschrieben 12. März 2003 Autor Geschrieben 12. März 2003 Alles probiert... Aber jetzt bekomme ich keine Fehlermeldungen mehr. Für alle die das Problem auch haben: Wenn ihr mit Excel arbeitet, nehmt das Excel-Objekt als Verweis auf Excel und kreiert nicht eigene Objekte! Große Fehlerquelle (Excel wurde X-mal geöffnet, etc...)!!! Nachdem ich die eigenen Objekte entfernt hatte, ist zwar der Prozess noch da, aber mehere geöffnete Excel Dateien blockieren oder überschreiben sich nicht gegenseitig! In diversen Foren habe ich noch Alternative Vorschläge gesehen, die laut Aussage von anderen Usern mit zig API-Funktionen arbeiten. Ferner braucht man dazu eine Task ID, um den Task abschiessen zu können. Und um die ID zu bekommen, bedarf es einer weiteren Programmierung.... Ist also viel zu kompliziert!!! Güße Gany Zitieren
g_nikolai Geschrieben 13. März 2003 Geschrieben 13. März 2003 also bei mir funktioert es ohne Problem das ich Excel als Object benutzte. Ich hab zum schliessen diesen Code objExcel.ActiveWorkbook.SaveAs strFilePath, 11 ' xlDBF4 = 11 '** Keine Meldung beim Schließen anzeigen objExcel.ActiveWindow.Close '** objExcel schließen objExcel.Quit Set objExcel = Nothing gruß guido Zitieren
Ganymed Geschrieben 13. März 2003 Autor Geschrieben 13. März 2003 Genau diesen Code hatte ich auch... Funktionierte nicht. Der Code war absolut korrekt. Es scheint ein internes VB-Windows Problem zu sein. Es liegt wohl anscheinend an der Windows Version, Service Pack u.ä.... Zitieren
DerMatze Geschrieben 13. März 2003 Geschrieben 13. März 2003 Hi habe ein sehr ähnliches Prog geschrieben. ... Excel öffnen, bearbeiten, speichern, schließen, ... Set MyExcel = CreateObject("Excel.Application") 'late bindung, um Probleme mit den Dll's zu verhindern Dim MyWB As Object Set MyWB = MyExcel.Workbooks.Open(mFilename, True) 'mFilename is der Filename (wäre jetzt keiner drauf gekommen, oder) 'BEARBEITUNG DER DATEI !! MyWB.close (True) Set MyWB = Nothing MyExcel.Quit Set MyExcel = Nothing Ich hatte das Prob auch, kann daran liegen, dass man den set ... = Nothing nicht durchläuft. Matze Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.