Zusammenfassung
In Microsoft Excel können Sie ein VBA-Makro (Microsoft Visual Basic for Applications) erstellen, das die Eingabeaufforderung Änderungen speichern unterdrückt, wenn Sie eine Arbeitsmappe schließen. Dies kann entweder durch Angeben des Status der Gespeicherten Eigenschaft der Arbeitsmappe oder durch Unterdrücken aller Warnungen für die Arbeitsmappe erfolgen.
Weitere Informationen
HINWEIS:Microsoft stellt Programmierbeispiele nur zur Veranschaulichung zur Verfügung, ohne ausdrückliche oder stillschweigende Garantie. Dies schließt die stillschweigende Gewährleistung der Marktgängigkeit oder der Eignung für einen bestimmten Zweck ein, ist aber nicht darauf beschränkt. In diesem Artikel wird davon ausgegangen, dass Sie mit der vorgestellten Programmiersprache und den Werkzeugen zum Erstellen und Debuggen von Prozeduren vertraut sind. Die Support-Techniker von Microsoft können Ihnen die Funktionalität eines bestimmten Verfahrens erklären. Sie werden diese Beispiele jedoch nicht ändern, um zusätzliche Funktionen bereitzustellen oder Verfahren zu konstruieren, die Ihren speziellen Anforderungen entsprechen.
Führen Sie zunächst die folgenden Schritte aus, um sich auf die Implementierung eines der folgenden Beispiele vorzubereiten:-
Starten Sie Excel, und öffnen Sie eine neue Arbeitsmappe.
-
Drücken Sie ALT+F11, um den Visual Basic-Editor zu starten.
-
Klicken Sie im Menü Einfügen auf Modul.
-
Geben Sie den Beispielmakrocode in das Modulblatt ein.
-
Drücken Sie ALT+F11, um zu Excel zurückzukehren.
-
Wählen Sie in Microsoft Office Excel 2003 und früheren Versionen von Excel im Menü Extras die Option Makro aus, und klicken Sie dann auf Makros.
Klicken Sie in Microsoft Office Excel 2007 auf der Registerkarte Entwicklertools in der Gruppe Code auf Makros. Wenn die Registerkarte Entwicklertools nicht verfügbar ist, sollten Sie Folgendes in Betracht ziehen: ein. Klicken Sie auf die Microsoft Office-Schaltfläche und dann auf Excel-Optionen. b. Klicken Sie in der Kategorie Beliebt unter Top-Optionen für die Arbeit mit Excel, um die Option Anzeigen auszuwählen. Registerkarte "Entwickler" im Kontrollkästchen "Menüband", und klicken Sie dann auf OK. -
Wählen Sie das gewünschte Makro aus, und klicken Sie anschließend auf Ausführen.
Die Saved-Eigenschaft gibt den Wert False zurück, wenn änderungen an einer Arbeitsmappe seit dem letzten Speichern vorgenommen wurden.Auto_Close verwenden, um ein Makro anzugeben, das beim Schließen einer Arbeitsmappe ausgeführt werden soll. Auf diese Weise können Sie steuern, wie das Dokument behandelt wird, wenn der Benutzer die Dokumente in Excel schließt.
Sie können den reservierten UnterroutinennamenBeispiel 1: Schließen der Arbeitsmappe ohne Speichern von Änderungen
Geben Sie in ein Visual Basic-Modul der betreffenden Arbeitsmappe den folgenden Code ein, um das Schließen der Arbeitsmappe zu erzwingen, ohne dass irgendwelche Änderungen gespeichert werden:
Sub Auto_Close()
ThisWorkbook.Saved = True
End Sub
Wenn die Saved-Eigenschaft auf True festgelegt ist, reagiert Excel so, als ob die Arbeitsmappe bereits gespeichert wurde und seit dem letzten Speichern keine Änderungen vorgenommen wurden.
Die DisplayAlerts-Eigenschaft des Programms kann für den gleichen Zweck verwendet werden. Das folgende Makro beispielsweise deaktiviert die Eigenschaft DisplayAlerts, schließt die aktive Arbeitsmappe, ohne dass Änderungen gespeichert werden, und aktiviert anschließend erneut die Eigenschaft DisplayAlerts.Sub CloseBook()
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
Sie können auch das Argument SaveChanges der Methode Close verwenden.
Das folgende Makro schließt die Arbeitsmappe, ohne Änderungen zu speichern:Sub CloseBook2()
ActiveWorkbook.Close savechanges:=False
End Sub
Beispiel 2: Schließen der Arbeitsmappe und Speichern der Änderungen
Geben Sie in ein Visual Basic-Modul der betreffenden Arbeitsmappe den folgenden Code ein, um das Speichern von Änderungen zu erzwingen:
Sub Auto_Close()
If ThisWorkbook.Saved = False Then
ThisWorkbook.Save End If
End Sub
Dieses Unterprocedure überprüft, ob die Gespeicherte Dateieigenschaft auf False festgelegt wurde. Wenn dies der Fall ist, wurde die Arbeitsmappe seit dem letzten Speichervorgang geändert, und diese Änderungen werden gespeichert.