Ich habe eine Arbeitsmappe mit 1 Arbeitsblatt, das 14k Zeilen und 36 Spalten enthält. Spalten 24 bis 36 enthalten Formeln (ao Formeln find und vlookup).Excel VBA reduzieren Verarbeitungszeit von Autofilter Makro
Die Berechnung ist auf manuell eingestellt.
Ich habe ein Testmakro erstellt, das einen Autofilter auf dem Dataset einrichtet und 4 Filterkriterien enthält (siehe Code unten). Das komische Ding ist, dass, wenn ich dieses Makro zum ersten Mal ausführe, es 109 Sekunden braucht, um zu laufen, das zweite Mal dauert es 17 Sekunden, und das dritte und aufeinander folgende Male ist es ungefähr 0,3 Sekunden. Ich finde das wirklich komisch. Wie kann das passieren und was kann ich tun, um die 0,3 Sekunden beim ersten Mal zu bekommen?
Danke.
Sub test()
Dim ws As Worksheet
Dim ws As Worksheet
Dim rng As Range
Dim PG()
PG = Array(“441”, “445”, “446”, “447”)
Set ws = Worksheets(“Notificaties”)
ws.AutoFilterMode = False
Set rng = ws.Range(“A1”)
Set rng = ws.Range(rng, rng.End(xlToRight))
With rng
.AutoFilter
.AutoFilter Field:=4, Criteria1:=”TWAP*”
.AutoFilter Field:=29, Criteria1:=”<>*II*”
.AutoFilter Field:=30, Criteria1:=”TRUE”
.AutoFilter Field:=22, Criteria1:=PG, Operator:=xlFilterValues
End With
End Sub
Versuchen Sie ersetzen 'Criteria1: = PG' mit' Criteria1: = (PG) '. Etwas besser ? –
@ Johan; Sie können versuchen, https://codereview.stackexchange.com/ für diese Art von Frage zu testen. Wenn der Code funktioniert und optimiert werden muss, wäre das die ideale Seite. – Cyril