Code beschleunigen
02.11.2017 10:30:18
Tobias
Ich bin gerade dabei, einen bereits vorhandenen Code umzuschreiben, sodass er "schneller" läuft. Zuvor wurde jedes Blatt immer wieder einzeln aktiviert, dann wurden Bereiche selected, kopiert, das Zielblatt aktiviert und dann kopiert und das immer und immer wieder.
Anbei ein Ausschnitt des Codes, wie ich ihn aktuell umgeschrieben habe:
With Sheets("XYZ")
If .AutoFilterMode Then .AutoFilterMode = False
.Range("$A$1:$AN$" & o).AutoFilter Field:=10, Criteria1:= _
"a"
.Range(anruw).Copy Destination:=Tabelle31.Range("A1")
If .AutoFilterMode Then .AutoFilterMode = False
.Range("$A$1:$AN$2113").AutoFilter Field:=10, Criteria1:= _
"b"
Application.CutCopyMode = False
.Range(anruw).Copy Destination:=Tabelle31.Range("F1")
If .AutoFilterMode Then .AutoFilterMode = False
.Range("$A$1:$AN$2113").AutoFilter Field:=10, Criteria1:= _
"c"
Application.CutCopyMode = False
.Range(anruw).Copy Destination:=Tabelle31.Range("K1")
If .AutoFilterMode Then .AutoFilterMode = False
.Range("$A$1:$AN$2113").AutoFilter Field:=10, Criteria1:= _
"d"
Application.CutCopyMode = False
.Range(anruw).Copy Destination:=Tabelle31.Range("BJ1")
If .AutoFilterMode Then .AutoFilterMode = False
.Range("$A$1:$AN$2113").AutoFilter Field:=10, Criteria1:= _
"e"
Application.CutCopyMode = False
.Range(arw).Copy Destination:=Tabelle31.Range("P1")
If .AutoFilterMode Then .AutoFilterMode = False
.Range("$A$1:$AN$2113").AutoFilter Field:=10, Criteria1:= _
"f"
Application.CutCopyMode = False
.Range(arw).Copy Destination:=Tabelle31.Range("T1")
End With
Meine Frage:
Macht der Application.CutCopyMode = False - Befehl hier überhaupt noch Sinn? Oder kann man den auch rausstreichen? Wie gesagt: Obiger Ausschnitt wiederholt sich so oder so ähnlich immer und immer wieder. Und sollte der Code dadurch schneller laufen?
Bei weiteren Ideen, wie man beschleunigen kann ... jederzeit gerne!
VG