Zum Hauptinhalt springen

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

Wenn Sie mit Excel VBA arbeiten, müssen Sie eine neue Arbeitsmappe öffnen oder erstellen, um die erforderlichen Vorgänge auszuführen. Nach Abschluss der Arbeit mit einem Buch stellt sich jedoch häufig die Frage, ob das Buch geschlossen wird. Das Schließen einer geöffneten Arbeitsmappe in Excel VBA kann auf verschiedene Arten erfolgen, von denen jede ihre eigenen Merkmale und Vorteile hat.

Eine der verfügbaren Möglichkeiten zum Schließen einer Arbeitsmappe in Excel VBA besteht darin, die Methode zu verwenden Close. Mit dieser Methode können Sie die aktive Arbeitsmappe schließen, indem Sie ein Dialogfeld aufrufen, in dem Sie aufgefordert werden, die Änderungen vor dem Schließen zu speichern. Wenn der Benutzer zustimmt, die Änderungen zu speichern, wird die Arbeitsmappe geschlossen, andernfalls wird die Arbeitsmappe geschlossen, ohne sie zu speichern.

Eine andere Möglichkeit zum Schließen einer Arbeitsmappe in Excel VBA besteht darin, die Eigenschaft zu verwenden Saved und Methode Close. In diesem Fall werden alle Änderungen automatisch gespeichert, bevor die Arbeitsmappe geschlossen wird. Mit diesem Ansatz wird verhindert, dass ein Dialogfeld angezeigt wird, in dem Sie aufgefordert werden, die Änderungen zu speichern.

Sie können die Methode verwenden, um eine geöffnete Arbeitsmappe in Excel VBA zu schließen Close oder Eigenschaft Saved in Kombination mit der Methode Close. Auf diese Weise kann der Benutzer je nach seinen Vorlieben eine geeignete Methode auswählen.

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

Das Schließen einer geöffneten Arbeitsmappe in VBA (Visual Basic for Applications) in Excel hat mehrere Gründe und Vorteile. Hier sind einige der wichtigsten Gründe, warum es hilfreich sein kann, ein offenes Buch zu schließen:

  • Speicher freigeben: Jedes geöffnete Buch verbraucht den Arbeitsspeicher des Computers. Wenn die Arbeitsmappe groß ist, viele Daten enthält oder komplexe Berechnungen durchführt, kann das Schließen der Arbeitsmappe Speicher freisetzen und die Systemleistung verbessern.
  • Datensicherheit: Wenn die Arbeitsmappe wichtige Daten enthält, kann das Schließen nach der Verwendung mögliche Sicherheitsrisiken wie den unbefugten Zugriff auf die Daten oder die Änderung der Daten verhindern.
  • Fehler im Code beheben: Das Schließen einer Arbeitsmappe kann helfen, Fehler im VBA-Code zu identifizieren und zu beheben. Wenn Sie die Arbeitsmappe erneut öffnen, können Sie überprüfen, ob der Code ordnungsgemäß funktioniert und ob die Arbeitsmappe fehlschlägt.
  • Vereinfachte Dateiverwaltung: Das Schließen einer geöffneten Arbeitsmappe hilft Ihnen, die Arbeit mit Dateien zu organisieren, insbesondere wenn viele Arbeitsmappen gleichzeitig geöffnet sind. Dadurch wird es einfacher, geöffnete Dateien zu verfolgen und zu verwalten.

Abschließend ist das Schließen einer geöffneten Arbeitsmappe sehr nützlich für die effiziente Arbeit mit Excel und die Datensicherheit. Dies verbessert die Leistung, hilft Fehler zu vermeiden und vereinfacht die Dateiverwaltung. Beachten Sie, wie wichtig es ist, Arbeitsmappen in Excel VBA richtig zu organisieren und zu schließen.

So schließen Sie eine Arbeitsmappe in Excel VBA

In Excel VBA können Sie die Methode verwenden Close um ein offenes Buch zu schließen. Methode Close schließt die Arbeitsmappe, ohne die Änderungen zu speichern. Wenn Sie die Änderungen vor dem Schließen speichern möchten, können Sie die Methode verwenden Save vor dem Anruf Close.

Beispiel für die Verwendung von Methoden Save und Close:

Sub CloseWorkbook() ' Speichert die Änderungen in der Arbeitsmappe, bevor Sie das ThisWorkbook schließen.Save ThisWorkbook.Close End Sub

Sie können diesen Code in Ihrem Makro verwenden, um die aktuell geöffnete Arbeitsmappe in Excel VBA zu schließen. Wenn Sie eine andere Arbeitsmappe schließen möchten, können Sie den Pfad und den Namen der Arbeitsmappe angeben:

Sub CloseOtherWorkbook() Dim wb As Workbook ' Öffnet eine andere Arbeitsmappe Set wb = Workbooks.Open("С:\Путь\до\вашей\книги .xlsx") ' Änderungen an der Arbeitsmappe speichern, bevor die wb geschlossen wird.Save wb.Close End Sub

In diesem Beispiel öffnen wir die Arbeitsmappe mit einer Methode Open speichern Sie die Änderungen und schließen Sie dann die Arbeitsmappe mit Methoden Save und Close.

Schritt 1: Auswählen der aktiven Arbeitsmappe

Bevor Sie eine geöffnete Arbeitsmappe in Excel VBA schließen, müssen Sie sie als aktive Arbeitsmappe auswählen. Dadurch kann das Programm mit genau diesem Buch arbeiten und die gewünschten Aktionen ausführen.

Verwenden Sie ein Objekt, um die aktive Arbeitsmappe in VBA auszuwählen Workbook. Sie können eine der folgenden Methoden verwenden, um die gewünschte Arbeitsmappe auszuwählen:

1. ActiveWorkbook-Methode

Diese Methode wählt die Arbeitsmappe aus, die gerade geöffnet und aktiv ist. Es ist besonders nützlich, wenn Sie nur ein Buch geöffnet haben und damit arbeiten möchten.

Beispiel für die Verwendung der Methode:

Dim wb As WorkbookSet wb = ActiveWorkbook

2. Workbooks(index) -Methode

Diese Methode wählt die Arbeitsmappe am angegebenen Index aus. Der Index kann eine Zahl oder ein Name der Arbeitsmappe sein.

Beispiel für die Verwendung einer Methode mit einem numerischen Index:

Dim wb As WorkbookSet wb = Workbooks(1)

Beispiel für die Verwendung einer Methode mit dem Namen einer Arbeitsmappe:

Dim wb As WorkbookSet wb = Workbooks("Book1")

3. ThisWorkbook-Methode

Diese Methode wählt die Arbeitsmappe aus, in der der aktuelle VBA-Code ausgeführt wird. Es ist nützlich, wenn Sie mit dem Code genau in diesem Buch arbeiten möchten.

Beispiel für die Verwendung der Methode:

Dim wb As WorkbookSet wb = ThisWorkbook

Nachdem Sie die aktive Arbeitsmappe ausgewählt haben, können Sie mit der Arbeitsmappe fortfahren und die erforderlichen Vorgänge ausführen, einschließlich des Schließens der Arbeitsmappe.

Schritt 2: Schließt die ausgewählte Arbeitsmappe

Um die ausgewählte Arbeitsmappe zu schließen, müssen Sie den folgenden Code verwenden:

Workbooks("ИмяКниги.xlsx").Close

Anstelle von "Name des Buches.xlsx" Sie müssen den Namen Ihres geöffneten Buches angeben. Wenn das Buch keinen Namen hat, können Sie den Index des Buches verwenden:

Workbooks(1).Close

Dieser Code schließt die erste geöffnete Arbeitsmappe.

Beachten Sie, dass beim Schließen einer Arbeitsmappe alle darin vorgenommenen Änderungen verloren gehen. Stellen Sie daher sicher, dass Sie alle Änderungen bei Bedarf speichern, bevor Sie die Arbeitsmappe schließen.

Jetzt wissen Sie, wie Sie eine geöffnete Arbeitsmappe in Excel VBA mit einem Beispiel für die Verwendung der Close-Methode schließen.

Schritt 3: Überprüfen des Buchschließens

Wenn Sie eine Arbeitsmappe in Excel VBA schließen, kann es hilfreich sein, sicherzustellen, dass sie erfolgreich geschlossen wurde. Dazu können Sie die If-Then-Else-Anweisung in Verbindung mit der isOpen-Methode verwenden.

Mit der isOpen-Methode können Sie überprüfen, ob die Arbeitsmappe gerade geöffnet ist. Es gibt True zurück, wenn die Arbeitsmappe geöffnet ist, und False, wenn die Arbeitsmappe geschlossen ist.

Um zu überprüfen, ob das Buch geschlossen ist, müssen Sie:

  1. Erstellen Sie eine Variable vom Typ Boolean, z. B. mit dem Namen isClosed.
  2. Weisen Sie dieser Variablen den von der isOpen-Methode der Arbeitsmappe zurückgegebenen Wert zu.
  3. Verwenden Sie die Erstellung einer bedingten If-Then-Else-Anweisung, um den Wert der Variablen isClosed zu überprüfen. Wenn es False ist, bedeutet dies, dass die Arbeitsmappe nicht erfolgreich geschlossen wurde. In diesem Fall können Sie zusätzliche Aktionen ausführen oder eine Fehlermeldung ausgeben.
Dim book As WorkbookSet book = Workbooks.Open("C:\путь\к\файлу.xlsx")'Ваш код обработки данныхbook.CloseDim isClosed As BooleanisClosed = book.IsOpenIf isClosed = False ThenMsgBox "Ошибка! Книга не закрылась успешно."End If

In diesem Beispiel wird die Arbeitsmappe nach dem Ausführen des Datenverarbeitungscodes mit der Close-Methode geschlossen. Anschließend wird die Variable isClosed erstellt und ihr der von der isOpen-Methode zurückgegebene Wert zugewiesen. Wenn die Variable isClosed auf False festgelegt ist, wird eine Fehlermeldung angezeigt.

Schritt 4: Speichern der Änderungen

Nachdem Sie alle erforderlichen Schritte mit einer geöffneten Arbeitsmappe in Excel VBA erfolgreich abgeschlossen haben, sollten Sie alle vorgenommenen Änderungen speichern. Dazu können Sie die Save-Methode verwenden, die die Arbeitsmappe unter dem aktuellen Dateinamen speichert.

Stellen Sie sicher, dass die Arbeitsmappe geöffnet ist, bevor Sie die Änderungen speichern. Wenn dies nicht der Fall ist, müssen Sie es mit der Workbooks-Methode öffnen.Open . Rufen Sie als Nächstes die Save-Methode für die aktive Arbeitsmappe auf.

Hier ist ein Beispielcode, der die aktuell aktive Arbeitsmappe speichert:

Sub SaveChanges()If Not ActiveWorkbook Is Nothing ThenActiveWorkbook.SaveEnd IfEnd Sub

Wenn Sie diesen Code ausführen, werden alle Änderungen an der aktiven Arbeitsmappe unter dem aktuellen Dateinamen gespeichert. Wenn Sie die Arbeitsmappe unter einem anderen Namen speichern möchten, können Sie die SaveAs- Methode verwenden.

Sie können auch zusätzliche Überprüfungen oder Aktionen hinzufügen, nachdem Sie die Änderungen gespeichert haben. Sie können beispielsweise eine Meldung anzeigen, dass das Speichern erfolgreich war, oder eine Arbeitsmappe schließen. Verwenden Sie die MsgBox-Methode, um eine Nachricht oder eine Workbook-Methode anzuzeigen.Close schließt die Arbeitsmappe.

In diesem Schritt haben Sie gelernt, Änderungen in einer geöffneten Arbeitsmappe mit der Save-Methode zu speichern. Im nächsten Schritt erfahren Sie, wie Sie eine Arbeitsmappe schließen und die Arbeit damit beenden.