Ich habe das Folgende ohne Erfolg benutzt. Die aktive Arbeitsmappe wird zwar geschlossen, das Excel-Fenster bleibt jedoch geöffnet.
Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False
Welches ist der Befehl, der die Anwendung beendet?
BEARBEITEN
Um noch etwas zu sagen: Im Open-Event der Arbeitsmappe führe ich ein Makro aus. Ich möchte die Anwendung beenden, wenn das Makro beendet ist. Ich habe das auch ohne Erfolg versucht.
Private Sub Workbook_Open()
Macro_MyJob
Application.Quit
End Sub
Wo soll ich diesen Application.Quit-Befehl einfügen?
Ich denke, Ihr Problem ist, dass das Dokument geschlossen wird, das das Makro aufruft, bevor Sie den Befehl zum Beenden der Anwendung senden.
In diesem Fall können Sie keinen Befehl zum Schließen der Arbeitsmappe senden. Stattdessen können Sie den Status "Gespeichert" der Arbeitsmappe auf "true" setzen, wodurch Meldungen zum Schließen eines nicht gespeicherten Buches umgangen werden. Hinweis: Dadurch wird die Arbeitsmappe nicht gespeichert. Es sieht nur so aus, als wäre es gerettet.
ThisWorkbook.Saved = True
und dann gleich danach
Application.Quit
Um die Meldung "Save Prompt" zu vermeiden, müssen Sie diese Zeilen einfügen
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Nach dem Speichern Ihrer Arbeit müssen Sie diese Zeile verwenden, um die Excel-Anwendung zu beenden
Application.Quit
Fügen Sie diese Zeile nicht einfach in Private Sub Workbook_Open () ein, es sei denn, Sie haben eine korrekte Zustandsprüfung durchgeführt. Andernfalls können Sie Ihre Excel-Datei beschädigen.
Erstellen Sie aus Sicherheitsgründen ein Modul, um es auszuführen. Das Folgende sind die Codes, die ich gesetzt habe:
Sub testSave()
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End Sub
Ich hoffe, es hilft Ihnen, das Problem zu lösen.
Application.Quit
Sollte den Trick tun.
Sub TestSave()
Application.Quit
ThisWorkBook.Close SaveChanges = False
End Sub
Das scheint für mich zu funktionieren, auch wenn es so aussieht, als würde ich die App vor dem Speichern beenden, aber es spart
Ich habe eine bestimmte Sequenz ausprobiert, die scheinbar funktioniert, wie Sie unten sehen können:
ThisWorkbook.Saved = True
Application.Quit
Application.ActiveWindow.Close SaveChanges:=False
ActiveWorkbook.Close SaveChanges:=False
Sie können es ausprobieren
ThisWorkbook.Save
ThisWorkbook.Saved = True
Application.Quit
In meinem Fall musste ich nur ein Excel-Fenster und nicht die gesamte Anwendung schließen. Daher musste ich angeben, welches Fenster genau geschlossen werden soll, ohne es zu speichern.
Die folgenden Zeilen funktionieren einwandfrei:
Windows("filename.xlsx").Activate
ActiveWorkbook.Close SaveChanges:=False