Da es verschiedene Möglichkeiten gibt, um viele Zeilen einer Excel-Tabelle abzuarbeiten, möchte ich Ihnen heute drei verschiedene Varianten im Hinblick auf die Geschwindigkeit in VBA vorstellen.
Die Testdatei enthält dazu in Spalte A 2000 Zahlen und die gleiche Menge in Spalte B. Ziel der Testumgebung ist, Duplikate, also gleiche Ziffern von Spalte A in Spalte B zu finden und über den Befehl debug.print im Direktfenster der VBA-Umgebung auszugeben.
Folgende drei Varianten werden dabei im Hinblick auf die Geschwindigkeit der Durchläufe gegenübergestellt:
- Variante 1: For-Next-Schleife mit direktem Verweis auf die Spalten- und Zeilennummern
- Variante 2: For-Each-Next-Schleife mit direktem Verweis auf die Spalten- und Zeilennummern
- Variante 3: For-Next-Schleife unter Verwendung von Array-Variablen
Testergebnisse:
Die folgende Tabelle zeigt die Programmlaufzeiten der drei Varianten:
Variane | Laufzeit in Sekunden |
Variante 1 | 33 Sekunden |
Variante 2 | 44 Sekunden |
Variante 3 | < 1 Sekunde |
Wie nicht anders zu erwarten war, ist die Variante mit Verwendung der Array-Variablen die schnellst. Dass der Vergleich aber in nur einem kleinen Bruchteil der notwendigen Zeit der anderen Varianten erfolgt, war dann doch etwas überraschend.
Den kompletten Test einschließlich VBA-Code und der Testdatei zum herunterladen finden Sie hier auf Excel-Inside.de.
Pingback: VBA Geschwindigkeitstest | OfficeBloggers