Moin Tina!
Application betrifft zwar die Anwendung Excel, Screenupdating (SU) aber
nur den sichtbaren Bereich der Tabelle auf dem Bildschirm.
Meine steile These hat mich zu folgender Bastelei veranlasst:
Schreiben von 100.000 Werten in
a) sichtbare Zelle A1 SU false
b) sichtbare Zelle B1 SU true
c) nicht sichtbare Zelle RPP63 SU false
d) nicht sichtbare Zelle RPQ63 SU true
Das Ergebnis beweist obige These.
Andererseits zeigt es aber auch, dass die eigentliche Bremse das Schreiben in einzelne Zellen ist.
(und wirkliche Beschleunigung woanders gesucht werden sollt, Stichwort getmorespeed)
Code:
sichtbar: Dauer ScreenUpdating = Falsch 2,712890625
sichtbar: Dauer ScreenUpdating = Wahr 4,4765625
nicht sichtbar: Dauer ScreenUpdating = Falsch 2,638671875
nicht sichtbar: Dauer ScreenUpdating = Wahr 3,0703125
Wer meinen Versuch nachstellen möchte:
Modul Modul1Option Explicit
Sub sichtbar()
Dim Start#, i&, a&
With Tabelle1
.Cells.Clear
For a = 0 To 1
Application.ScreenUpdating = CBool(a) ' 0 = false, 1 = true
With .Range("A1").Offset(, a)
Start = Timer
For i = 1 To 100000
.Value = i
Next
Debug.Print "sichtbar: Dauer ScreenUpdating = " & CBool(a) & " " & Timer - Start
End With
Next
For a = 0 To 1
Application.ScreenUpdating = CBool(a) ' 0 = false, 1 = true
With .Range("RPP63").Offset(, a)
Start = Timer
For i = 1 To 100000
.Value = i
Next
Debug.Print "nicht sichtbar: Dauer ScreenUpdating = " & CBool(a) & " " & Timer - Start
End With
Next
End With
End Sub
Gruß Ralf