Jegliche Iterationen in Datei extrem langsam?
02.11.2016 18:09:31
Johannes
ich habe eine generelle Frage, ob das Problem bekannt ist, oder jmd eine Vermutung hat woran es liegt.
Ich habe versucht ein kleines Simulationstool zu erstellen. Es umfasst ca 10 Tabellenblätter, auf denen Berechnungen über Standartformeln mit Zellbezügen (es kommt ein SVERWEIS vor, das ist aber auch das höchste der Gefühle) durchgeführt werden. Auf einem der Blätter existiert Code, eine Do-While-Schleife, die in Spalte A für den Simulationszeitraum fortlaufend den Zeitpunkt der aktuellen Iteration angibt (insg. 52560 Iterationen, variablen alle deklariert):
Do While aktueller_Zeitpunkt [kleinerzeichen]= Untersuchungsende
'Zählererhöhung
i = i + 1
'Zeitspalte
aktueller_Zeitpunkt = DateAdd("n", Intervall, aktueller_Zeitpunkt)
Cells(10 + i, 1).Value = aktueller_Zeitpunkt
Loop
Danach werden verschiedene weitere Prozeduren gestartet. Das lief alles zeitweise einwandfrei. Normalerweise hat das ganze ca 5-10s gedauert, bis diese Prozedur abgearbeitet war. Mittlerweile dauert das ganze geschlagene 5 Minuten - jedoch kann ich mich nicht entsinnen, was ich an dem Programm rundherum verändert haben könnte was einen Einfluß auf diese Schleife hat.
Zum Test ob nicht die Datei irgendwie marode geworden ist (bin schon lange und viel an dem Tool am arbeiten) habe ich mal ein neues Tabellenblatt angelegt und eine ebenso simple Schleife mit frischen Variablen gefertigt.
dim i,test as double
For i = 1 to 1000
test = 1+i
cells(1,1+i).value = test
next i
Siehe da, dauert ebenfalls 10s+. In einer anderen Datei die gleiche Schleife: vergangene Zeit kaum merkbar - damit habe ich für mich ausgeschlossen, dass es am Inhalt des Codes liegt oder der Tabellenblätter auf die in der Hauptprozedur zugegriffen wird. Ich hatte die Idee, dass wohlmöglich irgendwo ein langwieriges Changeereignis ausgelöst wird, ist aber auch nicht der Fall. Also sind/werden jegliche iterativen Berechnungen in dieser Arbeitsmappe irgendwie behindert.
Das Programm ist zu umfänglich um es jmd zum "mal eben drübergucken" zu geben.
Daher bleibt nur die Frage, ob ich hier einem bekannten Problem aufgelaufen bin, dass ich nur nicht richtig googlen konnte. Oder auch einfach nur um Vermutungen einzuholen.
Den relevanten Programmteil hier zu zeigen fällt mir ebenso schwierig, da ich diesen nicht bestimmen kann :/
Freundliche Grüße und vielen Dank im Vorraus für jedwede Hilfe.