RAM läuft voll ab dem zweiten Prozedur-Aufruf
25.05.2019 17:40:27
Messi
Grob zu meinem Code: Aus seiner UserForm heraus wird die Main Sub mit variierenden Parametern aufgerufen. Die Main-Sub ruft wiederum alle notwendigen Funktionen innerhalb des selben Moduls auf. Der Code arbeitet mit Arrays, diese sind aber alle eindimensional und haben maximal 60 Einträge. Schleifen sind auch vorhanden, laufen aber auch unter 100 Mal. Geschachtelte For-Schleifen gibt es kaum. Und nun zum Problem
Nach dem ersten Durchlauf der For-Schleife aus der UserForm ist die RAM-Belegung ca. bei 200MB und sobald die nächste Schleife startet springt die Belegung in 50er Schritten auf über 1GB, bei der dritten Schleife dann auf über 2GB und danach ist dann auch Schluss.
Userform:
For i=1 to 90
Call Main(a,b,c)
Next i
__________
Main(a,b,c)
While
Function(a)
Function(b)
End While
Function(a)
Function(b)
Was ich alles schon versucht hab:
1.) Variablen dereferenzieren: Alle Arrays werden nach jedem Funktionsaufruf dereferenziert bzw. erase arr
2.) Variablennamen: Alle Variablen sind individuell benannt, heißt int_ABC etc.
3.) Public Variablen gibt es nur 3 Stück
4.) Die Datei wird nach jeder Iteration der UserForm-Schleife gespeichert
5.) Ob ich Excel als Administrator ausführe oder nicht macht kein Unterschied
6.) Application.Calculation, EnableEvents, ScreenUpdating, DisplayPageBreaks wird alles in WorkBook_Open() ausgeschalten
Solangsam bin ich echt ratlos. Hat jemand von euch eine Idee was ich noch versuchen könnte?
Viele Grüße und Danke für eure Mithilfe,
Johannes 😊
Achja Excel Version ist 32-Bit.