Skip to main content

VBA Verarbeitung beschleunigen

Wenn man in Excel mittels VBA Werte in Zellen schreibt, kann das mitunter enorm viel Zeit in Anspruch nehmen. Grund dafür ist, das Excel bei jeder Veränderung dynamisch im Hintergrund die Zellwerte neu zu berechnen und die Bildschirmdartellung aktualisiert.

Daher ist es eine gute Idee, diese Dynamik vor einem Programstart in VBA zu deaktivieren. Dazu kann diese Subroutine verwendet werden.

Private Sub enableSpeedup(state As Boolean)
    If state Then
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
        Application.EnableEvents = False
    Else
        Application.ScreenUpdating = True
        Application.Calculation = xlCalculationAutomatic
        Application.EnableEvents = True
    End If
End Sub

So wird dann mit dem Aufruf enableSpeedup(true) die Verarbeitungsgeschwindigkeit erhöht und mit enableSpeedup(false) das Standardverhalten wiederhergestellt.