Zum Hauptinhalt springen

Schließen Sie eine geöffnete Arbeitsmappe in Excel VBA

Excel VBA ist ein leistungsfähiges Werkzeug, um die Arbeit mit Excel-Arbeitsmappen und -Arbeitsblättern zu automatisieren. Manchmal ist es jedoch notwendig, eine geöffnete Arbeitsmappe mit Programmcode zu schließen. In diesem Artikel werden wir uns einige Möglichkeiten ansehen, wie dies möglich ist.

Die erste Möglichkeit, die aktuell aktive Arbeitsmappe in Excel VBA zu schließen, besteht darin, die Close—Methode zu verwenden. Diese Methode kann für ein Objekt aufgerufen werden, das eine geöffnete Arbeitsmappe darstellt, und nimmt mehrere Parameter an, z. B. SaveChanges (ein Boolescher Wert, der angibt, ob die Änderungen vor dem Schließen gespeichert werden sollen) und Filename (eine Zeichenfolge, die den Dateipfad enthält, wenn die Arbeitsmappe auf der Festplatte gespeichert wurde).

Die zweite Möglichkeit, eine Arbeitsmappe in Excel VBA zu schließen, besteht darin, die Quit- Methode zu verwenden. Diese Methode kann für ein Excel Application-Objekt aufgerufen werden und akzeptiert mehrere Parameter, z. B. SaveChanges und Filename. Wenn Sie diese Methode verwenden, werden jedoch nicht nur das aktuelle Fenster, sondern auch alle anderen geöffneten Arbeitsmappen geschlossen.

Beachten Sie, dass das Aufrufen der Methoden SaveChanges und Quit ein Dialogfeld mit der Frage zum Speichern der Änderungen auslösen kann. Der Benutzer wird aufgefordert, eine der Optionen auszuwählen: "Speichern", "Nicht speichern" oder "Abbrechen". Wenn Sie das Schließen einer Arbeitsmappe ohne Dialogfeld erzwingen möchten, können Sie die Option verwenden SaveChanges:=False.

So schließen Sie eine geöffnete Arbeitsmappe in Excel VBA

In VBA (Visual Basic for Applications) können Sie die Methode verwenden, um eine geöffnete Arbeitsmappe in Excel zu schließen Close. Diese Methode schließt die aktive Arbeitsmappe, wendet die aktuellen Änderungen an und speichert sie (falls erforderlich). Wenn Sie eine aktive Arbeitsmappe schließen, müssen Sie einige wichtige Punkte berücksichtigen.

Der erste Schritt zum Schließen der aktiven Arbeitsmappe besteht darin, einen Verweis auf die aktuell geöffnete Arbeitsmappe zu erhalten. Dazu können Sie ein Objekt verwenden ActiveWorkbook. Es ist ein Verweis auf ein Buch, das derzeit im Fokus steht.

Dann durch Aufrufen der Methode Close Sie können die aktive Arbeitsmappe schließen. Wenn Änderungen an der Arbeitsmappe vorgenommen wurden, fordert Excel den Benutzer auf, diese Änderungen zu speichern, wenn er sie zuvor noch nicht gespeichert hat. Wenn Sie nicht möchten, dass Excel nach dem Speichern der Änderungen fragt, können Sie ein Argument hinzufügen SaveChanges und setze es gleich False.

Hier ist ein Beispielcode, mit dem Sie die aktive Arbeitsmappe in Excel schließen können:

Sub CloseActiveWorkbook()Dim wb As WorkbookSet wb = ActiveWorkbookwb.Close SaveChanges:=FalseEnd Sub

Wenn dieser Code ausgeführt wird, wird die aktive Arbeitsmappe geschlossen, ohne dass Sie aufgefordert werden, die Änderungen zu speichern. Wenn Sie Änderungen vorgenommen haben und diese beibehalten möchten, legen Sie das Argument fest SaveChanges gleichen True.

Mit der Methode Close und mit den richtigen Argumenten können Sie eine geöffnete Arbeitsmappe in Excel VBA schließen, ohne unnötige Aufforderungen zum Speichern der Änderungen zu erhalten.

Grundlagen zum Schließen einer Arbeitsmappe in Excel VBA

Wenn die Arbeit mit einer Arbeitsmappe in Excel VBA abgeschlossen ist, ist es wichtig, die Arbeitsmappe ordnungsgemäß zu schließen, um Ressourcen freizugeben und Speicherlecks zu vermeiden. Es gibt mehrere Möglichkeiten, eine Arbeitsmappe im VBA-Code zu schließen, und jede hat ihre eigenen Besonderheiten. In diesem Abschnitt werden wir die Grundlagen des Schließens einer Arbeitsmappe in Excel VBA untersuchen.

    Close-Methode: Eine der häufigsten Möglichkeiten, ein Buch zu schließen. Sie können die Close-Methode des Workbook-Objekts verwenden, um die Arbeitsmappe zu schließen. Sie können beispielsweise den folgenden Code verwenden, um die aktive Arbeitsmappe zu schließen:
ActiveWorkbook.Close
ActiveWorkbook.SaveActiveWorkbook.Close
Application.ActiveWorkbook.Close

Wenn Sie die Arbeitsmappe ordnungsgemäß in Excel VBA schließen, vermeiden Sie Speicherverluste und speichern die Änderungen ordnungsgemäß. Die Wahl der Schließmethode hängt von Ihren Bedürfnissen und Vorlieben ab. Es wird empfohlen, die Arbeitsmappe nach Abschluss der Arbeit immer zu schließen, um Ressourcen effizient zu verwalten und mögliche Probleme zu vermeiden.

Codebeispiele zum Schließen einer geöffneten Arbeitsmappe in Excel VBA

In VBA (Visual Basic for Applications) können Sie verschiedene Methoden und Eigenschaften verwenden, um die aktive Arbeitsmappe in Excel zu schließen. Hier sind einige Codebeispiele:

Beispiel 1: Verwenden der Close-Methode

Der folgende Code schließt die aktive Arbeitsmappe, ohne die Änderungen zu speichern:

Sub CloseWorkbookWithoutSaving()Application.DisplayAlerts = FalseActiveWorkbook.Close SaveChanges:=FalseApplication.DisplayAlerts = TrueEnd Sub

Beispiel 2: Verwenden der Saved-Eigenschaft

Der folgende Code überprüft, ob die aktive Arbeitsmappe gespeichert wurde, und schließt sie entsprechend:

Sub CloseWorkbookIfSaved()If ActiveWorkbook.Saved ThenActiveWorkbook.Close SaveChanges:=FalseElseActiveWorkbook.Close SaveChanges:=TrueEnd IfEnd Sub

Beispiel 3: Verwenden der Quit-Methode

Der folgende Code schließt Excel und alle geöffneten Arbeitsmappen:

Sub QuitExcel()Application.QuitEnd Sub

Sie sollten jedoch bei der Verwendung dieser Methode vorsichtig sein, da alle aktiven Arbeitsmappen geschlossen werden, ohne die Änderungen zu speichern.

Ich hoffe, diese Codebeispiele helfen Ihnen, eine geöffnete Arbeitsmappe in Excel VBA entsprechend Ihren spezifischen Anforderungen zu schließen.

Bewährte Methoden zum Schließen einer Arbeitsmappe in Excel VBA

  1. Speichern Sie die Änderungen vor dem Schließen: Wenn Sie Änderungen an der Arbeitsmappe vorgenommen haben, stellen Sie sicher, dass sie vor dem Schließen gespeichert sind. Verwenden Sie die Workbook-Methode.Save, um die aktive Arbeitsmappe zu speichern.
  2. Schließen Sie alle Objekte: Stellen Sie sicher, dass Sie alle mit der Arbeitsmappe verknüpften Objekte schließen, bevor Sie die Arbeitsmappe schließen. Schließen Sie beispielsweise alle Fenster einer Arbeitsmappe mit der Window-Methode.Close .
  3. Überprüfen Sie die Fehler: Es wird empfohlen, vor dem Schließen der Arbeitsmappe auf mögliche Fehler zu prüfen. Verwenden Sie das Konstrukt On Error Resume Next, bevor Sie die Arbeitsmappe schließen, um mögliche Fehler zu behandeln.
  4. Speicher freigeben: Es ist auch wichtig, nach dem Schließen der Arbeitsmappe den Speicher freizugeben, der von den Objekten belegt wird, die während der Arbeit mit der Arbeitsmappe verwendet wurden. Verwenden Sie die Set-Methode, um den von Objekten belegten Speicher freizugeben.

Das korrekte Schließen einer Arbeitsmappe in Excel VBA hilft Ihnen, Datenverlust, Speicherverlust und andere Probleme im Zusammenhang mit der Arbeit mit Arbeitsmappen zu vermeiden. Wenn Sie die oben genannten Richtlinien befolgen, können Sie sicherstellen, dass das Buch ordnungsgemäß geschlossen und wichtige Informationen gespeichert werden.