Rechengeschwindigkeit VBA-Programm Excel

Diskutiere Rechengeschwindigkeit VBA-Programm Excel im Office Forum im Bereich Microsoft Community Fragen; Hallo, ich habe ein VBA-Makro geschrieben, um Daten zusammenzufassen und aufzusummieren, die aus mehreren Eingangsdateien stammen. Da das Programm...
M

MSCom

Neuer Benutzer
Threadstarter
Dabei seit
20.09.2016
Beiträge
1
Hallo,
ich habe ein VBA-Makro geschrieben, um Daten zusammenzufassen und aufzusummieren, die aus mehreren Eingangsdateien stammen. Da das Programm relativ lange läuft, habe ich einzelne Funktionen herausgenommen, um mit Testprogrammen Möglichkeiten zur Geschwindigkeitsoptimierung zu prüfen.

In einem dieser Testprogramme werden folgende Funktionen ausgeführt:

  1. Eine externe Daten mit den zu bearbeitenden Daten wird im Programm geöffnet. Die externe Datei enthält ein Arbeitsblatt mit einer Tabelle (ListObject) mit ca. 115.000 Zeilen und 36 Spalten.
  2. Bei dem ersten Test werden alle Daten in ein Array gelesen, zwei Zellen in einer Schleife über alle Zeilen zu einer Zelle für einen SVERWEIS zusammengefasst und der zusammengefasste Wert in die Excel-Tabelle zurückgeschrieben.
  3. In einem zweiten Test wird die unter 2. beschriebene Funktion mit Excel-Formeln für das ListObject ausgeführt.
Eine Messung der Zeiten ergibt für das Programm eine Gesamtdurchlaufzeit von ca. 42 sec, die Array-Zusammenfassung unter 2. benötigte ca. 12 sec, die Excel-Formeln unter 3. benötigten ca. 28 sec; Programmierung über Array also eindeutig schneller.

Da ich festgestellt hatte, dass die Laufzeiten beim Testen mit Breakpoints andere Werte brachten, habe ich einen Stop-Befehl eingefügt. Dieser Stop-Befehl steht nach dem Öffnen der externen Datei und vor der ersten Test-Funktion. In diesem Fall wurde die Laufzeit für die Array-Zusammenfassung auf ca. 3 sec und die Berechnung über Excel-Formeln auf ca. 2 sec reduziert! Die Gesamtlaufzeit war natürlich in diesem Fall von der Reaktionsgeschwindigkeit abhängig, mit der nach dem Stop-Befehl das Programm fortgesetzt wurde.
Meine Vermutung ist, dass nach dem Stop-Befehl der Interpreter den Rest des Programmes besser optimieren kann?
Da ich einem Anwender nicht zumuten kann, ein durch einen Stop-Befehl angehaltenes Programm fortzusetzen, ist meine Frage, wie kann ich den Effekt der Zeitreduzierung per Programm steuern bzw. gibt es andere Optionen die Laufzeit zu reduzieren?
Vielen Dank
 
Thema:

Rechengeschwindigkeit VBA-Programm Excel

Rechengeschwindigkeit VBA-Programm Excel - Ähnliche Themen

Excel Zelleninhalt suche und automatische Ausgabe: Hallo Ist es möglich in einem Excel-Sheet (1) eine Nummer einzutippen, welche aus einem anderen Excel-Sheet (2) herausgefiltert wird und bei...
Excel+Word: Falsche Zeichen im String beim Auslesen von Text aus einer Word-Tabellen-Zelle mit Excel VBA: Hallo zusammen, ich lese mit Excel VBA Werte aus einer Tabellen-Zelle in einem Worddokument und kopiere den Wert in eine Excel-Tabellen-Zelle...
MS365 Makros in Excel fast zehnmal langsamer als in Excel MS2016, HILFE!: Liebes Forum, ich habe Microsoft Windows 10 Pro und MS 365. Ich teste für einen Kunden eine Kalkulationsdatei in Excel mit VBA Makros. In den...
Exclel VBA Sortieren: Hallo kann einer helfen Ich braucht 3 Makros in Excel VBA eine 1. Sortierung für das jeweilige Aktive Sheet von Zeile 2= Überschriften...
Excel: Zwei Tabellen in einer Arbeitsmappe. Daten entsprechend der Kundennummer in Tabelle 2 übernehmen.: Hallo, wer kann mir helfen? Tabelle 1 enthält alle notwendigen Kundendaten. In der ersten Spalte befinden sich die Kundennummern. Die Kundendaten...
Oben