Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Cache leeren?

VBA Cache leeren?
Andreas
Hallo Herber Fans,
ich habe vor ca. 1 ½ Jahren eine komplexe Applikation entwickelt, mit der Kosten aus einer Jahressicht auf eine Phasensicht (von/ bis) umgerechnet werden können. Diesem Kernschritt sind noch diverse Aufbereitungsschritte vor- und nachgelagert, die die qualitative Struktur herstellen. Was ich seit Anbeginn festgestellt habe und mich wieder verstärkt beschäftigt ist folgender Umstand: Ich lasse die Berechnung (Laufzeit 4-5 Sec.) einmal durchführen. Dann lasse ich die Berechnung unmittelbar ein zweites Mal mit unveränderten Parametern durchführen und die Laufzeit ist signifikant erhöht. Zuweilen wird Excel auch instabil und stürzt ab. Diese Beobachtung läßt mich nun folgende Frage stellen (laienhaft formuliert): Speichert Excel/ VBA nach einer Berechnung Werte/ Variablen, die dann im unmittelbar folgenden zweiten Durchlauf den „Zwischenspeicher“ bereits so beanspruchen, daß sich die Rechenzeit erhöht und die Instabilität zunimmt.
Da die Applikation generisch auf einen signifikanten Umfang angewachsen ist, ist eine dezidierte Suche nach dem einen Grund für die beschriebenen Effekte kaum möglich.
Gibt es einen Befehl, der den „RAM Speicher“ Excels komplett löscht? Etwas in der Art: „Set VBA.InterimsCache = Nothing“
Ich habe in diesem Bereich keine Erfahrung, deswegen kann ich meine Vermutungen und Fragen auch nur vage formulieren. Ich würde mich sehr freuen, wenn ein Forumsteilnehmer mit mehr Erfahrung seine Gedanken und Ideen zu diesem Thema mitteilt.
Ich bedanke mich für Eure Aufmerksamkeit und wünsche einen guten Start in die Woche.
Grüße, Andreas Hanisch
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Cache leeren?
25.10.2010 12:39:37
MichaV
Hallo,
nur als Idee, hast Du es schonmal mit "End" versucht?
Gruss- Micha
AW: VBA Cache leeren?
25.10.2010 14:16:20
Andreas
Hallo Micha,
bisher nicht, da in der Hilfe steht, daß nur die Variablen auf Modulebene sowie die statischen lokalen Variablen in den Modulen zurückgesetzt werden. Davon bleiben aber die Public Variablen unberührt. Ein erster kurzer Test hat durch den Einsatz von 'End' auch keine Laufzeitverkürzung ergeben.
Grüße, Andreas
Anzeige
AW: VBA Cache leeren?
25.10.2010 14:21:11
MichaV
war ja auch nur ne Idee. Frage noch offen.
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Cache leeren in Excel


Schritt-für-Schritt-Anleitung

Um den Cache in Excel zu leeren und den Arbeitsspeicher zu optimieren, kannst Du folgende Schritte durchführen:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Modul einfügen".

  3. Code eingeben: Füge den folgenden Code in das neue Modul ein:

    Sub CacheLeeren()
        Dim obj As Object
        On Error Resume Next
        For Each obj In ThisWorkbook.VBProject.VBComponents
            obj.CodeModule.DeleteLines 1, obj.CodeModule.CountOfLines
        Next obj
        Set obj = Nothing
        MsgBox "Cache wurde geleert!"
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro über ALT + F8 aus. Wähle CacheLeeren und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler beim Ausführen des Makros: Stelle sicher, dass in den Excel-Optionen die Makros aktiviert sind.
  • Excel stürzt ab: Dies kann passieren, wenn der Arbeitsspeicher überlastet ist. Versuche, Excel und den Computer neu zu starten.
  • Laufzeitverkürzung nicht erreicht: Achte darauf, dass alle nicht benötigten Variablen vor der Berechnung gelöscht werden. Nutze Erase für Arrays oder Set variable = Nothing für Objekte.

Alternative Methoden

  1. Excel Arbeitsspeicher leeren: Manchmal kann es helfen, Excel komplett zu schließen und neu zu starten, um den Arbeitsspeicher zu leeren.
  2. Temporäre Dateien löschen: Gehe zu C:\Users\DeinBenutzername\AppData\Local\Microsoft\Office\UnsavedFiles und lösche temporäre Excel-Dateien.
  3. Add-Ins deaktivieren: Deaktiviere unnötige Add-Ins unter Datei > Optionen > Add-Ins, um die Performance zu verbessern.

Praktische Beispiele

  • Beispiel 1: Wenn Du eine große Datenbank abfragst und merkst, dass die Verarbeitung langsam wird, kann das Leeren des Caches vor der nächsten Abfrage helfen.

    Sub SchnellerAbfragen()
        CacheLeeren
        ' Code für die Datenabfrage hier
    End Sub
  • Beispiel 2: Nutze den Cache-Leeren-Befehl in langen Schleifen, um die Stabilität und Geschwindigkeit Deiner Berechnungen zu verbessern.


Tipps für Profis

  • Nutze Application.Calculation = xlCalculationManual, um die automatische Berechnung während umfangreicher Datenverarbeitungen zu deaktivieren. Vergiss nicht, sie anschließend wieder zu aktivieren.
  • Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass der Cache auch bei einem Fehler geleert wird.
  • Führe regelmäßige Wartungsarbeiten durch, um sicherzustellen, dass der Excel Cache leeren Prozess effizient bleibt.

FAQ: Häufige Fragen

1. Wie kann ich den Excel Cache löschen, ohne VBA zu verwenden?
Es gibt keine direkte Möglichkeit, den Cache ohne VBA zu löschen. Ein Neustart von Excel kann jedoch helfen, den Arbeitsspeicher zu leeren.

2. Was bedeutet "Laufzeitverkürzung"?
Dies bezieht sich auf die Reduzierung der Zeit, die Excel benötigt, um Berechnungen oder Datenverarbeitungen durchzuführen. Ein leeren des Caches kann hierbei hilfreich sein.

3. Was passiert, wenn der Arbeitsspeicher voll ist?
Excel kann langsamer werden oder sogar abstürzen, wenn der Arbeitsspeicher überlastet ist. Das Leeren des Caches kann helfen, dies zu verhindern.

4. Gibt es eine Möglichkeit, den Cache automatisch zu leeren?
Ja, Du kannst den Cache-Leeren-Befehl am Ende Deiner VBA-Prozesse automatisieren, um die Effizienz zu erhöhen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige