Makro Optimierung
26.10.2018 00:16:53
Timo
ich habe aktuell das Problem, das ich Preislisten mit einem Datensatz bzw. einem Archiv abgleichen muss.
Hierzu habe ich die nötigen Spalten (ArtikelNr, wo auch Buchstaben enthalten sind) als String in ein Array geschrieben und suche dann per Formel.
... = Application.Match(Array_Neue_Liste(x), Array_Datensatz, 0)
und zweige danach in die unterschiedlichen Zweige per isNumeric ab
If IsNumeric(...) Then...
Daraus folgen beim durchsuchen vom Datensatz und Archiv und jeweils einer Numeric Prüfung dann folgende Möglichkeiten:
Name ist in Datensatz vorhanden
Name ist in Archiv vorhanden
Name ist nicht vorhanden und muss neu angelegt werden
Aufgrund der Größe des Datensatzes
18.000 Zeilen Neue_Liste
40.000 Zeilen bestehender_Datensatz
31.000 Zeilen Archiv
dauert eine Suche unglaublich lang.
Ich hatte mir eigentlich erhofft, durch den Einsatz von Arrays Laufzeit zu sparen. 15 Min auf ca. 5 Min ist aber nicht die erhoffte Erleichterung.
Gibt es einen weiteren Trick außer den Einsatz von Arrays, welcher Laufzeit sparen kann?
Gruß Timo
Dies ist ebenfalls schon drin.
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With