Microsoft Excel ist mit seinen leistungsstarken Funktionen eines der beliebtesten Werkzeuge für die Arbeit mit Daten. Wenn Sie mit vielen Arbeitsmappen und Arbeitsblättern arbeiten, müssen Sie möglicherweise alle geöffneten Arbeitsmappen schließen. Die virtuelle Umgebung zum Ausführen von VBA-Makros kann verwendet werden, um diese Aufgabe zu automatisieren, was die Arbeit erheblich vereinfachen kann.
Das Schließen aller Arbeitsmappen kann nützlich sein, wenn Sie den RAM bereinigen, Computerressourcen freigeben oder einfach Änderungen an allen geöffneten Arbeitsmappen speichern möchten. In Excel VBA gibt es mehrere Möglichkeiten, Arbeitsmappen zu schließen, einschließlich des Schließens einer einzelnen Arbeitsmappe oder aller geöffneten Arbeitsmappen.
Betrachten Sie in diesem Artikel Beispielcode in VBA, mit dem Sie alle geöffneten Arbeitsmappen schließen können. Wir werden zwei grundlegende Ansätze betrachten: verwenden Sie eine Schleife, um jede geöffnete Arbeitsmappe nacheinander zu schließen, und verwenden Sie die Application-Methode mit Parametern, die alle geöffneten Arbeitsmappen gleichzeitig schließen.
Das Schließen von geöffneten Excel-VBA-Arbeitsmappen ist eine einfache Möglichkeit
Methode 1: Schließen aller geöffneten Arbeitsmappen
Die erste Methode besteht darin, die Workbooks-Methode zu verwenden.Close . Diese Methode schließt alle geöffneten Arbeitsmappen. Hier ist ein Beispielcode:
Sub CloseAllWorkbooks()Dim wb As WorkbookFor Each wb In Workbookswb.Close SaveChanges:=FalseNext wbEnd Sub
Dieser Code durchläuft alle geöffneten Arbeitsmappen in Excel und schließt jede Arbeitsmappe. Der Parameter SaveChanges ist auf False gesetzt, damit die Änderungen vor dem Schließen der Arbeitsmappe nicht gespeichert werden. Wenn Sie die Änderungen speichern müssen, setzen Sie diese Option auf True .
Methode 2: Schließen einer bestimmten Arbeitsmappe
Wenn Sie nur eine bestimmte Arbeitsmappe schließen müssen, können Sie die Workbooks-Methode verwenden.Close mit dem Namen der Arbeitsmappe oder des Indexes. Hier ist ein Beispielcode:
Sub CloseWorkbookByName()Dim wb As WorkbookSet wb = Workbooks("Название книги.xlsx")wb.Close SaveChanges:=FalseEnd SubSub CloseWorkbookByIndex()Dim wb As WorkbookSet wb = Workbooks(2)wb.Close SaveChanges:=FalseEnd Sub
Im ersten Beispiel wird die Arbeitsmappe mit Namen geschlossen. Im zweiten Beispiel wird die Arbeitsmappe nach Index geschlossen (beginnend bei 1).
Methode 3: Schließen aller Arbeitsmappen mit Ausnahme der aktiven Arbeitsmappe
Diese Methode schließt alle Arbeitsmappen mit Ausnahme der aktiven Arbeitsmappe. Es basiert auf der Verwendung eines ThisWorkbook-Objekts, das die aktuelle Arbeitsmappe darstellt. Hier ist ein Beispielcode:
Sub CloseAllWorkbooksExceptActive()Dim wb As WorkbookFor Each wb In WorkbooksIf Not wb Is ThisWorkbook Thenwb.Close SaveChanges:=FalseEnd IfNext wbEnd Sub
In diesem Beispiel werden alle Arbeitsmappen in Excel durchlaufen, und wenn die aktuelle Arbeitsmappe nicht gleich der aktiven Arbeitsmappe ist, wird sie geschlossen.
Abschließend stellt das Schließen von geöffneten Arbeitsmappen in Excel VBA eine wichtige Aufgabe dar, um die Effizienz bei der Arbeit mit Makros zu gewährleisten. Diese einfachen Methoden helfen Ihnen, alle geöffneten Bücher oder ein ausgewähltes Buch zu schließen, um mögliche Fehler zu vermeiden und die Arbeit zu verlangsamen.
Wie schließe ich alle geöffneten Arbeitsmappen gleichzeitig in Excel VBA
Wenn Sie alle geöffneten Arbeitsmappen in Excel mit VBA schließen müssen, können Sie den folgenden Code verwenden:
Sub ЗакрытьВсеКниги()Dim Книга As WorkbookApplication.ScreenUpdating = False'Проходим по всем открытым книгамFor Each Книга In WorkbooksКнига.Close SaveChanges:=FalseNext КнигаApplication.ScreenUpdating = TrueEnd Sub
Dieser Code schließt alle geöffneten Arbeitsmappen in Excel, ohne die Änderungen zu speichern. Es deaktiviert auch vorübergehend die Bildschirmaktualisierung, damit der Code schnell und effizient ausgeführt wird.
Sie können diesen Code in Ihrem Makro speichern oder zu Ihrem VBA-Projekt in Excel hinzufügen. Danach können Sie dieses Makro einfach aufrufen und alle geöffneten Arbeitsmappen in Excel schließen.
Das Schließen aller geöffneten Arbeitsmappen kann nützlich sein, wenn Sie mit einem neuen Datensatz beginnen möchten oder wenn Sie Speicher leeren und Computerressourcen freigeben möchten.
Anmerkung: Bevor Sie die Arbeitsmappe schließen, ohne die Änderungen zu speichern, stellen Sie sicher, dass Sie alle erforderlichen Daten gespeichert haben, um den Verlust von Informationen zu vermeiden.
Schließen von geöffneten Arbeitsmappen in Excel VBA mit einer Schleife
In der Programmiersprache VBA ist es möglich, alle geöffneten Arbeitsmappen in Excel mit einer Schleife zu schließen. Dies kann nützlich sein, wenn Sie mehrere Arbeitsmappen schnell schließen oder die Entwicklungsumgebung bereinigen müssen, bevor Sie andere Vorgänge ausführen.
Um diese Aufgabe zu implementieren, können wir eine For Each-Schleife verwenden, mit der Sie alle geöffneten Arbeitsmappen in Excel durchlaufen können. Innerhalb einer Schleife können wir die Close-Methode für jede Arbeitsmappe aufrufen, um sie zu schließen.
Hier ist ein Codebeispiel, das das Schließen aller geöffneten Arbeitsmappen veranschaulicht:
Sub CloseAllWorkbooks() Dim wb As Workbook For Each wb In Workbooks wb.Close SaveChanges:=False Next wb End Sub
In diesem Beispiel deklarieren wir eine Variable wb vom Typ Workbook, die zum Durchlaufen der Arbeitsmappen verwendet wird. Dann verwenden wir eine For Each-Schleife, um alle Bücher in der Workbooks-Sammlung zu durchlaufen.
Innerhalb der Schleife rufen wir die Close-Methode für jede Arbeitsmappe auf und übergeben den SaveChanges-Parameter mit dem Wert False. Dadurch wird sichergestellt, dass die Änderungen beim Schließen der Arbeitsmappe nicht gespeichert werden. Wenn Sie die Änderungen speichern möchten, ändern Sie den Wert des Parameters SaveChanges in True.
Nachdem der Zyklus abgeschlossen ist, werden alle Arbeitsmappen geschlossen, und Sie können mit anderen Operationen in Excel fortfahren.
Mit diesem Code können Sie alle geöffneten Arbeitsmappen in Excel VBA einfach schließen und Ihre Arbeit mit der Anwendung vereinfachen.
Wie schließe ich eine bestimmte geöffnete Arbeitsmappe in Excel VBA
Sie können die Close-Methode verwenden, um eine bestimmte geöffnete Arbeitsmappe in Excel VBA zu schließen. Mit dieser Methode können Sie die aktive Arbeitsmappe oder die angegebene Arbeitsmappe nach Name oder Index schließen.
Hier ist ein Beispielcode, der das Schließen einer Arbeitsmappe mit Namen veranschaulicht:
Sub ЗакрытьКнигу()Dim книгаЗакрыть As Workbook'Устанавливаем книгу, которую нужно закрытьSet книгаЗакрыть = Workbooks("Название книги.xlsx")'Закрываем книгукнигаЗакрыть.Close'Освобождаем ресурсы памятиSet книгаЗакрыть = NothingEnd Sub
In diesem Beispiel erstellen wir eine Variable Arbeitsmappe schließen , die einen Verweis auf die Arbeitsmappe mit dem angegebenen Namen enthält. Dann wenden wir die Close-Methode auf diese Variable an, um die Arbeitsmappe zu schließen. Schließlich geben wir Speicherressourcen frei, indem wir die Variable Buch Schließen auf Nothing setzen .
Wenn Sie den Namen der Arbeitsmappe nicht kennen, aber den Index der Arbeitsmappe kennen, können Sie den folgenden Code verwenden:
Sub ЗакрытьКнигу()Dim книгаЗакрыть As Workbook'Устанавливаем книгу, которую нужно закрыть по индексуSet книгаЗакрыть = Workbooks(1) '1 - индекс книги'Закрываем книгукнигаЗакрыть.Close'Освобождаем ресурсы памятиSet книгаЗакрыть = NothingEnd Sub
In diesem Beispiel legen wir die Variable Buch schließen auf die gleiche Arbeitsmappe mit dem angegebenen Index (1) fest. Dann wenden wir die Close-Methode an und geben Speicherressourcen frei.
Mithilfe der obigen Codebeispiele können Sie eine bestimmte geöffnete Arbeitsmappe in Excel VBA schließen.
Schließen Sie geöffnete Arbeitsmappen in Excel VBA und speichern Sie die Änderungen
In der Programmiersprache VBA (Visual Basic for Applications) können Sie das Schließen von geöffneten Arbeitsmappen in Excel automatisieren. Sie können jedoch angeben, dass die an Arbeitsmappen vorgenommenen Änderungen vor dem Beenden gespeichert werden sollen.
Um alle geöffneten Arbeitsmappen zu schließen und die Änderungen in Excel VBA beizubehalten, können wir eine Schleife verwenden, die durch jede geöffnete Arbeitsmappe iteriert und die Close-Methode aufruft. Mit einem zusätzlichen Argument der Close-Methode, das für das Speichern von Änderungen verantwortlich ist, können wir angeben, dass die Änderungen gespeichert werden sollen.
Im Folgenden finden Sie den VBA-Code, der alle geöffneten Arbeitsmappen schließt:
Dim wb As WorkbookFor Each wb In Application.Workbookswb.Close SaveChanges:=TrueNext wb
In diesem Code verwenden wir die Variable wb , die jede geöffnete Arbeitsmappe in der Workbooks-Auflistung des Application-Objekts darstellt. Dann rufen wir die Close-Methode für jede Arbeitsmappe auf und übergeben das Argument SaveChanges:=True , um die Änderungen vor dem Schließen zu speichern.
Daher schließt dieser Code alle geöffneten Arbeitsmappen in Excel VBA und speichert alle an ihnen vorgenommenen Änderungen.
Wenn Sie diesen Code verwenden, sollten Sie bedenken, dass er alle geöffneten Arbeitsmappen schließt, einschließlich persönlicher Arbeitsmappen (personal.xlsb), wenn sie geöffnet sind. Stellen Sie daher sicher, dass Ihr aktueller Arbeitsprozess nicht beeinträchtigt wird, bevor Sie den Code verwenden.
Wenn Sie nur bestimmte Arbeitsmappen schließen möchten, können Sie den Code entsprechend ändern, indem Sie Bedingungen hinzufügen oder ändern, wie die zu schließenden Arbeitsmappen ausgewählt werden sollen.