Hallo miteinander,
für ein bestehendes Excel-VBA-Projekt habe ich ein paar neue Funktionen geschrieben und diese in einem Test-Excel-File ausgetestet. Die neue .bas-Datei (nennen wir sie mal Modul B) habe ich exportiert und in das bestehende Projekt importiert. (Zwei neue UserForms waren auch noch nötig.)
Nun kommt es zu dem Phänomen, dass in dem Projekt eine alte, unveränderte Funktion in dem alten, unveränderten - nennen wir es mal: Modul A, die direkt aus Workbook_Open() aufgerufen wird, deutlich langsamer läuft als vorher.
Von Modul A werden keine Funktionen in Modul B aufgerufen (die waren ja bisher nicht vorhanden), wohl aber andersherum. Modul B verwendet "Option explicit", Modul A nicht. In Modul B ist eine Reihe zusätzlicher globaler Variablen und Konstanten definiert.
Der Performanceeinbruch findet im alten Code in einer etwas komplizierten Schleife statt. Vor der Erweiterung um Modul B dauerte ein Schleifendurchlauf 0,04 Sekunden, danach 0,11 Sekunden - das ist fast das dreifache. Da diese Schleife mehrere hundert mal durchlaufen wird, macht sich das durchaus unangenehm bemerkbar ...
Kann mir jemand einen Tipp geben, warum der unveränderte alte Code auf einmal langsamer läuft? Und vielleicht auch, was man dagegen unternehmen kann?
Vielen Dank schon mal ...
|