Bildschirmupdate während Makroausführung ausschalten
Schritt-für-Schritt-Anleitung
Um die Bildschirmaktualisierung während der Ausführung eines Makros in Excel VBA auszuschalten, kannst Du die folgenden Schritte befolgen:
-
Öffne den Visual Basic for Applications (VBA) Editor in Excel. Du kannst dies tun, indem Du ALT + F11 drückst.
-
Gehe zu dem Modul, in dem Du Dein Makro schreiben möchtest.
-
Füge den folgenden Code in Dein Makro ein, um die Bildschirmaktualisierung auszuschalten:
Application.ScreenUpdating = False
-
Füge am Ende Deines Makros den Code hinzu, um die Bildschirmaktualisierung wieder einzuschalten:
Application.ScreenUpdating = True
-
Speichere Dein Makro und teste es. Du wirst einen Geschwindigkeitsunterschied bemerken, da Excel nicht mehr bei jeder Änderung den Bildschirm aktualisieren muss.
Häufige Fehler und Lösungen
-
Fehler: Das Makro läuft langsamer als erwartet.
Lösung: Überprüfe, ob Du die Bildschirmaktualisierung tatsächlich mit Application.ScreenUpdating = False ausgeschaltet hast. Oft wird dies vergessen.
-
Fehler: Nach dem Ausführen des Makros bleibt der Bildschirm "einfrieren".
Lösung: Stelle sicher, dass Du Application.ScreenUpdating = True am Ende Deines Makros verwendest, um die Aktualisierung wieder zu aktivieren.
Alternative Methoden
Es gibt auch andere Ansätze, die Du verwenden kannst, um die Leistung Deiner Makros zu verbessern:
-
Vermeidung von Select und Activate: Wenn Du diese Befehle vermeidest, wird Dein Code schneller. Stattdessen kannst Du direkt auf die Objekte zugreifen.
Beispiel:
Worksheets("Sheet1").Range("A1").Value = "Test"
-
Deaktivieren von Berechnungen: Du kannst auch die automatischen Berechnungen ausschalten, während das Makro läuft:
Application.Calculation = xlCalculationManual
Und am Ende wieder aktivieren:
Application.Calculation = xlCalculationAutomatic
Praktische Beispiele
Hier ist ein einfaches Beispiel für ein Makro, das die Bildschirmaktualisierung und Berechnung ausschaltet:
Sub BeispielMakro()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
' Dein Code hier
Worksheets("Sheet1").Range("A1").Value = "Hallo Welt"
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Dieses Beispiel zeigt, wie Du sowohl die Bildschirmaktualisierung als auch die Berechnung optimieren kannst, um die Ausführungsgeschwindigkeit zu erhöhen.
Tipps für Profis
- Debugging: Wenn Du während der Entwicklung Deines Makros Probleme hast, kannst Du temporär die Bildschirmaktualisierung nicht ausschalten, um zu sehen, was genau passiert.
- Zusammenfassen von Änderungen: Fasse mehrere Änderungen in einem Schritt zusammen, um die Anzahl der Bildschirmaktualisierungen zu minimieren.
- Verwendung von Variablen: Nutze Variablen, um Werte zu speichern und unnötige Zugriffe auf das Arbeitsblatt zu vermeiden.
FAQ: Häufige Fragen
1. Wie funktioniert der Befehl Application.ScreenUpdating = False?
Dieser Befehl deaktiviert die Bildschirmaktualisierung, sodass Excel nicht bei jeder Änderung den Bildschirm neu zeichnet, was die Ausführungsgeschwindigkeit Deines Makros erhöht.
2. Muss ich die Bildschirmaktualisierung am Ende des Makros wieder aktivieren?
Ja, es ist wichtig, Application.ScreenUpdating = True am Ende Deines Makros zu verwenden, um sicherzustellen, dass Excel wieder normal funktioniert.