Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Reservierten Speicher freigeben

Forumthread: Reservierten Speicher freigeben

Reservierten Speicher freigeben
16.01.2003 13:23:13
Alex
Hallo,
ich habe folgendes Problem :

wenn ich auf Modulebene für mein VBA-Programm
öffentliche Variablen deklariere (die sehr viel
Speicher belegen) - wie kann ich den Speicher
wieder freigeben bzw. wie beende ich mein Pro-
gramm richtig?
z.B.
in Modul1

Dim MyArray(5000, 5000) As String

der Array belegt ca. 100MB Arbeitsspeicher.
Es ist aber notwendig ihn öffentlich zu de-
klarieren.

Wie werd ich ihn wieder los?


Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Reservierten Speicher freigeben
16.01.2003 13:32:31
Michael Scheffler
Hallo,

Excel solte doch, soweit den Speicher rümen, wenn Du das Sub beendest? Ansosnten musst Du es variabel mit Redim gestalten. Gruß

Micha

Re: Reservierten Speicher freigeben
16.01.2003 13:40:26
Alex
die variable ist öffentlich - also nicht innerhalb
einer sub deklariert

Option Explicit
Option Private Module
Dim MyArray(5000, 5000) As String
Public Const KPath = "c:\"

sub Test()
myarray(100,100)="Hallo!"
End sub

Anzeige
Re: Reservierten Speicher freigeben
16.01.2003 14:06:09
L.Vira
Erase MyArray
;
Anzeige

Infobox / Tutorial

Reservierten Speicher in Excel freigeben


Schritt-für-Schritt-Anleitung

Um den reservierten Speicher in Excel freizugeben, insbesondere wenn du öffentliche Variablen in einem VBA-Programm verwendest, kannst du die folgenden Schritte befolgen:

  1. Erklärung der Variablen: Stelle sicher, dass du deine Variablen in einem Modul deklarierst. Beispiel:

    Dim MyArray(5000, 5000) As String
  2. Verwendung von Erase: Wenn du den Speicherplatz freigeben möchtest, kannst du die Erase-Anweisung verwenden, um das Array zu löschen:

    Erase MyArray
  3. Programm richtig beenden: Achte darauf, dass du dein Programm ordnungsgemäß beendest, um sicherzustellen, dass Excel den Arbeitsspeicher freigeben kann. Wenn das Subroutine beendet ist, sollte Excel normalerweise den Speicher rümen.

  4. Verwendung von ReDim: Falls du die Dimensionen deines Arrays flexibel gestalten möchtest, kannst du ReDim verwenden:

    ReDim MyArray(0 To 0, 0 To 0) As String

Häufige Fehler und Lösungen

  • Fehler: Der Arbeitsspeicher wird nicht freigegeben, nachdem das Sub beendet ist.
    Lösung: Stelle sicher, dass du Erase für öffentliche Arrays verwendest, bevor das Programm endet.

  • Fehler: Excel meldet Speicherprobleme bei der Ausführung von VBA.
    Lösung: Überprüfe, ob du große Arrays verwendest und diese vor dem Verlassen der Sub ordnungsgemäß freigibst.


Alternative Methoden

Falls die oben genannten Methoden nicht geeignet sind, kannst du folgende Alternativen in Betracht ziehen:

  • Verwendung von lokalen Variablen: Wenn möglich, verwende lokale Variablen innerhalb von Subs oder Funktionen, um den Arbeitsspeicher freizugeben, sobald die Subroutine beendet ist.

  • Zuweisung von Nothing: Für Objekte kannst du den Speicher freigeben, indem du das Objekt auf Nothing setzt:

    Set MyObject = Nothing

Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie du den reservierten Speicher in Excel freigeben kannst:

Option Explicit
Dim MyArray(5000, 5000) As String

Sub Test()
    MyArray(100, 100) = "Hallo!"

    ' Speicher freigeben
    Erase MyArray
End Sub

In diesem Beispiel wird das Array MyArray verwendet und anschließend mit Erase freigegeben, um den Excel Speicherplatz zu optimieren.


Tipps für Profis

  • Verwende Option Explicit: Dies hilft dir, Variablenfehler zu vermeiden und den Code klarer zu strukturieren.

  • Monitor den Arbeitsspeicher: Nutze den Task-Manager, um den Excel-Arbeitsspeicher während der Ausführung deiner VBA-Programme zu überwachen. So kannst du rechtzeitig reagieren, wenn Probleme auftreten.

  • Optimierung von Arrays: Überlege, ob du die Größe deiner Arrays anpassen kannst, um den Speicher effizienter zu nutzen.


FAQ: Häufige Fragen

1. Wie kann ich den reservierten Speicher in Excel manuell freigeben?
Du kannst den reservierten Speicher freigeben, indem du die Erase-Anweisung für Arrays verwendest oder Objekte auf Nothing setzt.

2. Was passiert, wenn ich das Array nicht freigebe?
Wenn du das Array nicht freigibst, kann es zu Speicherproblemen kommen, was die Leistung von Excel beeinträchtigen kann.

3. Gibt es eine Möglichkeit, den Arbeitsspeicher während der Codeausführung zu überwachen?
Ja, du kannst den Task-Manager verwenden, um die Speichernutzung von Excel zu überwachen, während dein VBA-Code läuft.

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