Schließen ohne Speichern in Excel VBA
Schritt-für-Schritt-Anleitung
Um eine Excel-Datei über VBA zu schließen, ohne eine Rückfrage oder Änderungen zu speichern, kannst Du folgende Schritte befolgen:
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject (DeinDokument)" klickst und "Modul einfügen" wählst.
- Kopiere den folgenden VBA-Code in das Modul:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Close SaveChanges:=False
End Sub
- Schließe den VBA-Editor und speichere Deine Änderungen.
- Nun wird die Datei ohne Rückfrage geschlossen, wenn Du Excel schließt.
Häufige Fehler und Lösungen
-
Fehler: Excel fragt beim Schließen nach, ob die Änderungen gespeichert werden sollen.
-
Fehler: Der Code wird im Debugger als Fehler angezeigt.
- Lösung: Überprüfe, ob Du die korrekte Syntax verwendest.
SaveChanges:=False
muss mit dem Doppelpunkt geschrieben werden.
-
Fehler: Das Programm schließt nicht wie gewünscht.
- Lösung: Stelle sicher, dass das Makro im richtigen Ereignis (Workbook_BeforeClose) platziert ist.
Alternative Methoden
Wenn Du eine Datei schließen möchtest, ohne sie zu speichern, gibt es auch andere Ansätze:
-
Verwende das ActiveWorkbook
-Objekt, um die Datei zu schließen:
Sub SchliessenOhneSpeichern()
ActiveWorkbook.Close SaveChanges:=False
End Sub
-
Du kannst auch das Dialogfeld beim Schließen unterdrücken, indem Du den Cancel
-Parameter im Workbook_BeforeClose
-Ereignis verwendest:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = True ' Verhindert das Schließen
ThisWorkbook.Close SaveChanges:=False
End Sub
Praktische Beispiele
Hier sind einige praktische Beispiele, um die Datei ohne Speichern zu schließen:
-
Schließen ohne Rückfrage und ohne speichern:
Sub SchliessenOhneSpeichern()
ActiveWorkbook.Close SaveChanges:=False
End Sub
-
Schließen und dabei sicherstellen, dass keine Änderungen gespeichert werden:
Sub SchliessenMitVerifikation()
If MsgBox("Möchten Sie die Änderungen speichern?", vbYesNo) = vbNo Then
ActiveWorkbook.Close SaveChanges:=False
End If
End Sub
Tipps für Profis
- Verwendung von
Option Explicit
: Füge immer Option Explicit
zu Beginn Deines Moduls hinzu, um Variablen zu deklarieren. Dies hilft, Fehler zu vermeiden.
- Testen von Makros: Teste Deine Makros in einer Kopie Deiner Datei, um Datenverluste zu vermeiden.
- Dokumentation: Kommentiere Deinen Code, damit Du später nachvollziehen kannst, was jede Zeile bewirken soll.
FAQ: Häufige Fragen
1. Wie verhindere ich, dass Excel beim Schließen nach dem Speichern fragt?
Um zu verhindern, dass Excel beim Schließen nach dem Speichern fragt, kannst Du ThisWorkbook.Close SaveChanges:=False
verwenden.
2. Ist es möglich, eine Datei mit Änderungen zu speichern und dann zu schließen?
Ja, Du kannst ActiveWorkbook.Close SaveChanges:=True
verwenden, um die Änderungen zu speichern und die Datei zu schließen.
3. Was passiert, wenn ich SaveChanges:=True
verwende?
Wenn Du SaveChanges:=True
verwendest, werden alle Änderungen in der Arbeitsmappe gespeichert, bevor sie geschlossen wird.