Zum Hauptinhalt springen

So deaktivieren Sie eine Arbeitsmappe in Excel VBA: Anweisungen und Beispiele

Excel VBA bietet viele Möglichkeiten zum Automatisieren und Verwalten von Daten in Arbeitsmappen. Manchmal ist es jedoch erforderlich, den Zugriff auf die Arbeitsmappe vorübergehend zu deaktivieren oder die Anzeige auf dem Bildschirm auszublenden. In diesem Artikel werden wir untersuchen, wie eine solche Operation mit VBA durchgeführt werden kann.

Eine Möglichkeit, eine Arbeitsmappe zu deaktivieren, besteht darin, sie auszublenden. Dazu können Sie die Methode verwenden Workbook.Hide. Diese Methode blendet die Arbeitsmappe aus, ohne sie zu schließen, und der Benutzer kann erst auf ihre Daten und Funktionen zugreifen, wenn sie erneut angezeigt wird. Hier ist ein Beispiel für die Verwendung der Methode:

Sub HideWorkbook()

ThisWorkbook.Hide

End Sub

Wenn Sie jedoch den Zugriff auf die Arbeitsmappe vollständig deaktivieren möchten, einschließlich des Ausblendens der Arbeitsmappe, können Sie die Methode verwenden Workbook.Close. Wenn Sie diese Methode verwenden, wird die Arbeitsmappe geschlossen und alle nicht gespeicherten Änderungen gehen verloren. Beispiel für die Verwendung der Methode:

Sub CloseWorkbook()

ThisWorkbook.Close

End Sub

Daher können Sie mithilfe der Methoden Hide und Close eine Arbeitsmappe in Excel VBA abhängig von der jeweiligen Aufgabe deaktivieren. Verwenden Sie diese Methoden sorgfältig, um wichtige Daten nicht zu verlieren und die Integrität Ihrer Makros und Anwendungen zu bewahren.

Deaktivieren einer Arbeitsmappe in Excel VBA

Das Deaktivieren einer Arbeitsmappe in Excel VBA kann nützlich sein, wenn Sie die Ausführung eines Makros oder einer Anwendung vorübergehend anhalten möchten, um andere Vorgänge auszuführen. Es gibt mehrere Möglichkeiten, eine Arbeitsmappe in Excel VBA zu deaktivieren, einschließlich der Verwendung des Befehls Application.EnableEvents und Verwenden des Befehls Application.ScreenUpdating . Im Folgenden finden Sie Beispiele und Anweisungen zur Verwendung dieser Methoden.

1. Verwenden des Befehls Application.EnableEvents

Der Befehl Application.EnableEvents deaktiviert Arbeitsmappen-bezogene Ereignisse, einschließlich der Ausführung von Makros, wenn Daten geändert werden. Wenn Sie eine Arbeitsmappe deaktivieren möchten, um Aktionen auszuführen, ohne Ereignisse auszulösen, können Sie diesen Befehl verwenden. Hier ist ein Beispielcode:

Sub DisableWorkbook()Application.EnableEvents = False' ваш кодApplication.EnableEvents = TrueEnd Sub

In diesem Beispiel ist der Befehl Application.EnableEvents = False deaktiviert Arbeitsmappenereignisse und den Befehl Application.EnableEvents = True aktiviert sie nach der Ausführung des Codes erneut. Sie können Ihren Code zwischen diesen beiden Befehlen platzieren.

2. Verwenden des Befehls Application.ScreenUpdating

Der Befehl Application.ScreenUpdating deaktiviert die Bildschirmaktualisierung, wodurch Makros und Anwendungen schneller ausgeführt werden können. Wenn Sie eine Arbeitsmappe deaktivieren möchten, um Vorgänge ohne sichtbare Aktualisierung auf dem Bildschirm durchzuführen, können Sie diesen Befehl verwenden. Hier ist ein Beispielcode:

Sub DisableWorkbook()Application.ScreenUpdating = False' ваш кодApplication.ScreenUpdating = TrueEnd Sub

In diesem Beispiel ist der Befehl Application.ScreenUpdating = False deaktiviert die Bildschirmaktualisierung, während der Code ausgeführt wird und der Befehl Application ausgeführt wird.ScreenUpdating = True aktiviert die Aktualisierung des Bildschirms nach der Ausführung des Codes erneut.

Sie können als Application-Befehl verwenden.EnableEvents und den Befehl Application.ScreenUpdating einzeln oder in Kombination, je nach Ihren Bedürfnissen. Diese Befehle können nützlich sein, wenn Sie die Arbeitsmappe vorübergehend deaktivieren müssen, um bestimmte Vorgänge auszuführen, und sie dann wieder aktivieren müssen, damit die Anwendung ordnungsgemäß funktioniert.

Warum muss ich eine Arbeitsmappe in Excel VBA deaktivieren

  • Reduziert die CPU-Auslastung. Wenn eine Arbeitsmappe aktiv ist, verarbeitet Excel alle ihre Vorgänge und Ereignisse. Wenn in einem Makro viele Vorgänge ausgeführt werden, einschließlich Datenaktualisierung und Berechnungen, kann der Prozessor überlastet sein. Wenn Sie eine Arbeitsmappe deaktivieren, können Sie den Prozessor für andere Aufgaben freigeben.
  • Erhöht die Geschwindigkeit der Makroausführung. Wenn die Arbeitsmappe aktiv ist, wird jeder Vorgang langsamer ausgeführt, da die Benutzeroberfläche, die Zellhervorhebung und andere Aktionen aktualisiert werden müssen. Wenn Sie die Arbeitsmappe deaktivieren, führt Excel Makros aus, ohne die Benutzeroberfläche zu aktualisieren, wodurch die Laufzeit verkürzt wird.
  • Reduzierte Speichernutzung. Wenn eine Arbeitsmappe aktiv ist, nimmt sie eine bestimmte Menge an RAM in Anspruch, insbesondere wenn sie eine große Datenmenge enthält. Wenn Sie eine Arbeitsmappe deaktivieren, gibt Excel Speicher frei, sodass Sie sie für andere Aufgaben verwenden können.
  • Verbessert die Stabilität von Makros. Wenn in einem Makro Daten in mehreren Arbeitsmappen gleichzeitig manipuliert werden, kann es zu Konflikten zwischen ausgehenden und eingehenden Links kommen, wenn eine andere Arbeitsmappe aktiviert wird. Durch das Deaktivieren der Arbeitsmappe werden solche Fehler vermieden und die Ausführung von Makros ist stabiler.

Das Deaktivieren einer Arbeitsmappe in Excel VBA ist besonders nützlich, wenn Sie mit großen Datenmengen und komplexen Makros arbeiten. Dadurch können Sie die Leistung und Stabilität von Makros verbessern und die Verwendung von Computerressourcen optimieren.