In diesem Tutorial wird der VBA-Fehler wegen unzureichenden Speichers erläutert.
Der VBA-Fehler "Nicht genügend Arbeitsspeicher" tritt auf, wenn Excel beim Ausführen eines Makros alle Ressourcen Ihres Computers verwendet hat und buchstäblich nicht mehr genügend Arbeitsspeicher vorhanden ist, um Code zu berechnen oder auszuführen. Dies kann auftreten, wenn Sie viele Anwendungen ausführen und versuchen, ein großes Makro in Excel auszuführen, oder wenn Sie in Excel versehentlich eine ewige Schleife erstellt haben.
(Weitere Informationen zu VBA-Fehlern finden Sie in unserem Fehlerbehandlungshandbuch.)
Ursachen für Fehler wegen unzureichendem Speicher
Ein Fehler wegen unzureichendem Arbeitsspeicher kann auftreten, wenn Sie mit einer Arbeitsmappe arbeiten, die viele Arbeitsblätter und Tausende von Zeilen enthält. Wenn wir eine Schleife erstellen, die mit einer großen Datenmenge arbeitet, kann ein Fehler wegen unzureichendem Speicher auftreten. Es könnte auch auftreten, wenn wir mit mehreren Objekten arbeiten und jedes Objekt mit einer SET-Anweisung setzen, aber dann die Verweise auf die Objekte zwischen Prozeduren oder Schleifen nicht löschen.
Die folgende Schleife könnte beispielsweise definitiv einen Speicherfehler verursachen, wenn Sie mehrere Dateien mit mehreren Blättern geöffnet haben.
1234567891011121314 | Unter TestMemory()Dim wb als ArbeitsmappeDim ws als ArbeitsblattDim ich als SingleFür jedes wb in Application.WorkbooksFür jedes ws in wb.SheetsTun bis ActiveCell = "A1048576"Aktive Zelle = 1 + iich = ich + 1ActiveCell.Offset(1, 0).WählenSchleifeNächstes wsNächstes wbEnd Sub |
Verhindern eines Fehlers wegen unzureichenden Speichers
Objekte freigeben
Wenn wir mit Schleifen und Objekten arbeiten, müssen wir sicherstellen, dass wir das Objekt auf NICHTS setzen, sobald es verwendet und nicht mehr benötigt wird - dies gibt Speicher frei.
VBA-Programmierung | Code Generator arbeitet für Sie!
Stellen Sie sicher, dass nur eine Instanz von Excel ausgeführt wird
Wenn wir mit großen Dateien und großen Datenmengen arbeiten, stellen Sie sicher, dass Sie nicht mehrere Sitzungen von Excel geöffnet haben - es muss nur einmal geöffnet sein. Eine Möglichkeit, dies zu überprüfen, besteht darin, zum Task-Manager zu gehen und zu sehen, wie viele Instanzen von Excel ausgeführt werden.
Drücken Sie Strg+Alt+Entf auf der Tastatur,
Klicke auf Taskmanager und stellen Sie sicher, dass nur eine Instanz von Excel ausgeführt wird. In der Grafik unten gibt es eine Instanz mit 2 Fenstern.
Wir können auch im Task-Manager überprüfen, ob keine Excel-Instanz im Hintergrund läuft (dh nicht sichtbar).
Scrollen Sie im Task-Manager nach unten, bis Sie . sehen Hintergrundprozesse und stellen Sie sicher, dass Excel nicht in dieser Programmliste enthalten ist.
Überprüfen Sie die Größe Ihrer Excel-Datei
Oftmals befinden sich Zeilen und Spalten, auf die zugegriffen wurde, unter denen in Ihren Arbeitsblättern, die tatsächlich verwendet werden. Excel verwendet Speicher in diesen Zellen - auch wenn diese Zellen leer sind. Überprüfen Sie die Größe der Datei, indem Sie drücken STRG+UMSCHALT+ENDE auf der Tastatur, um zu sehen, wo Ihr Zellenzeiger landet. Wenn es weit unter der letzten von Ihnen verwendeten Zelle landet, stellen Sie sicher, dass Sie alle leeren Zeilen und Spalten über dem Zellenzeiger löschen und dann die Datei erneut speichern - dies verringert die Größe Ihrer Excel-Datei.
Andere Möglichkeiten zum Überprüfen des Speichers
Es gibt verschiedene andere Möglichkeiten, Speicher in Excel freizugeben. Eine gute Idee ist es, Excel zu schließen, wenn Sie es nicht verwenden, und es später zu öffnen - dies wird den Speicher freigeben, den Excel speichert, da es dazu neigt, Speicher zu speichern, auch wenn eine Arbeitsmappe nicht geöffnet ist! Stellen Sie immer sicher, dass Ihre Office-Version auf dem neuesten Stand ist, indem Sie auf Ihrem PC nach Updates suchen und nach VBA-Add-Ins suchen, die möglicherweise verwendet werden, die Sie jedoch nicht verwenden. Sie können diese deinstallieren, um noch mehr Speicher freizugeben.