Anwendung von Application.ScreenUpdating in Excel VBA
Schritt-für-Schritt-Anleitung
-
Öffne den Visual Basic for Applications (VBA) Editor: Drücke ALT + F11 in Excel.
-
Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)", wähle "Einfügen" und dann "Modul".
-
Füge den folgenden Code ein:
Sub BeispielMakro()
' Bildschirmaktualisierung ausschalten
Application.ScreenUpdating = False
' Hier kommt Dein Code hin
' Bildschirmaktualisierung wieder einschalten
Application.ScreenUpdating = True
End Sub
-
Schließe den VBA Editor: Klicke auf das Kreuz oder drücke ALT + Q.
-
Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle dein Makro aus und klicke auf "Ausführen".
Häufige Fehler und Lösungen
- ScreenUpdating bleibt auf False: Wenn
Application.ScreenUpdating = False nicht funktioniert, könnte es an einer falschen Code-Struktur oder an einer Fehlerbehandlung liegen. Überprüfe, ob du On Error Goto verwendest, da dies das Bildschirmupdate unterbrechen kann.
- Makro funktioniert nicht wie erwartet: Stelle sicher, dass du den Befehl
Application.ScreenUpdating = True am Ende deines Makros hast. Oft wird dieser Befehl nicht benötigt, da Excel es standardmäßig wieder aktiviert, aber in einigen Fällen kann es notwendig sein.
- Registry-Einstellungen zurücksetzen: Wenn alle Stricke reißen, kann es helfen, die Office-Registry-Einstellungen zurückzusetzen. Dies sollte jedoch mit Vorsicht geschehen.
Alternative Methoden
- Anstatt ScreenUpdating auszuschalten, könntest du versuchen, die Sichtbarkeit der Objekte oder die Aktivierung von Blättern zu minimieren. Das bedeutet, dass du auf das direkte Arbeiten mit
Select und Selection verzichtest und stattdessen volle Referenzen verwendest.
- Nutze
Application.DisplayAlerts = False, um Pop-ups zu vermeiden, die das Arbeiten stören könnten.
Praktische Beispiele
Hier sind einige Beispiele, wie du Application.ScreenUpdating in verschiedenen Szenarien nutzen kannst:
-
Datenimport:
Sub DatenImport()
Application.ScreenUpdating = False
' Code für den Datenimport
Application.ScreenUpdating = True
End Sub
-
Diagrammerstellung:
Sub DiagrammErstellen()
Application.ScreenUpdating = False
' Code zur Diagrammerstellung
Application.ScreenUpdating = True
End Sub
In beiden Fällen kannst du die Leistung deiner Makros erheblich steigern, indem du die Bildschirmaktualisierung während der Verarbeitung ausschaltest.
Tipps für Profis
- Vermeide unnötige Bildschirmaktualisierungen: Wenn du viel mit
.Select und .Activate arbeitest, optimiere deinen Code, um diese Befehle zu reduzieren. Das vermeidet nicht nur das Ausschalten der Bildschirmaktualisierung, sondern beschleunigt auch deinen Code.
-
Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass Application.ScreenUpdating immer wieder aktiviert wird, selbst wenn ein Fehler auftritt. Ein Beispiel:
Sub SicheresMakro()
On Error GoTo FehlerHandler
Application.ScreenUpdating = False
' Dein Code hier
FehlerHandler:
Application.ScreenUpdating = True
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End Sub
FAQ: Häufige Fragen
1. Warum bleibt Application.ScreenUpdating auf False?
Es kann an einer Fehlerbehandlung oder an einem spezifischen Fehler im Code liegen. Überprüfe deinen gesamten Code auf mögliche Ursachen.
2. Muss ich Application.ScreenUpdating = True am Ende eines Makros verwenden?
In den meisten Fällen übernimmt Excel das Automatisch, jedoch ist es eine gute Praxis, es explizit zu setzen, um sicherzustellen, dass das Bildschirmupdate aktiviert wird.
3. Was kann ich tun, wenn ScreenUpdating nicht funktioniert?
Versuche, die Registry-Einstellungen von Office zurückzusetzen oder überprüfe, ob andere Einstellungen in Excel den Prozess stören.