Speicherproblem in Excel

Hallo Kollegas,
habe ein Excel-Makro dessen Ausführung ca. 5 Minuten dauert. Es öffnet, bearbeitet, speichert und schliesst verschiedene Dateien. Eigentlich läuft es wunderbar durch, nach 2-3 Testläufen erscheint jedoch die Betriebssystemmeldung „Es steht kein virtueller Speicher mehr zur Verfügung“. Der Taskmanager bestätigt mir dies. Beobachte ich den Taskmanager während der Makroausführung, so sehe ich wie der virtuelle Speicher immer mehr ansteigt. Obwohl das Makro dann fertig ist, wird der Speicher nicht mehr freigegeben. Dies geschieht erst wenn Excel vollständig geschlossen wird.

Kennt jemand von euch dieses Problem ??

Gruß und schon im voraus vielen Dank

Tom

Hallo Tom

Der Source und die Excel Version würden mir mehr Rückschlüsse erlauben…

Ich gehe davon aus, dass Du für jedes Files das Du öffnetst die gleichen Variablen verwendest und die Filehandle sauber schliesst…

Grüsse Peter

Hi Tom

Bist Du Dir auch ganz sicher das Dein Makro die Dateien wieder vollständig schliesst?
Wenn sie nämlich nicht geschlossen werden ist es ja kein Wunder das Dein Speicher abhaut.

Hallo Peter,

ich verwende Excel 97. Ich arbeite nicht mit Filehandle da ich keine Textdateien öffne und schließe sonder ganz normale Excel-Dateien. Per Code erstelle ich dort Diagramme, wandle Tabellen um, lösche Formeln etc. . Der Source-Code hat ca. 5000 Zeilen.

Gruß

Tom

Hallo Tom,

ich verwende Excel 97. Ich arbeite nicht
mit Filehandle da ich keine Textdateien
öffne und schließe sonder ganz normale
Excel-Dateien. Per Code erstelle ich dort
Diagramme, wandle Tabellen um, lösche
Formeln etc. . Der Source-Code hat ca.
5000 Zeilen.

Das Problem hier ist wohl auch, dass Excel ein bischen vergewaltigt wird. Die Macros sind eigentlich dazu gedacht einfachere, sich wiederholende, Aufgaben zu Automatisieren, und nicht dazu riesige Programme zu schreiben. Eigentlich wäre es vernünftig ein solch grosses (5’000 Zeilen) Projekt in VB zu schreiben! Da hast du dann auch bessere Möglichkeiten den Fehler zu finden. Evtl. lieg das Problem auch einfach daran, dass Excel gar nicht wissen kann, dass der Speicher wieder freigegeben werden kann, da ja das Makro noch läuft.
Vor allem musst du darauf achten, dass alle Objecte wieder freigegeben werden sobald sie nicht mehr gebraucht werden, sobald ein Object einer Variablen zugewiesen worden ist belegt es Speicher bis es explizit freigegeben wird z.B. mit variable=Nothing.

MfG Peter(TOO)