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

Forumthread: Array - Nicht genügend Speicher

Array - Nicht genügend Speicher
10.09.2015 08:32:50
Bonduca
Hallo,
Ich möchte ein Tabellenblatt via Array einlesen:
Dim arr_A() As Variant
max_z = 20000
max_s = 420
Worksheets(A).Activate
'Array wird neu definiert mit maximaler Zeilen- und Spaltenanzahl
ReDim arr_A(max_z, max_s)
Es kommt der Laufzeitfehler 7: Nicht genügend Speicher.
Ich hab den Array als Variant definiert, da sowohl Text als auch Zahlen eingelesen werden sollen. Wie könnte es funktionieren?
Danke

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array - Nicht genügend Speicher
10.09.2015 09:01:45
Daniel
Hi
Der Speicherplatz für Variablen ist nicht besonders gross.
Lese nur die Zellbereiche, die du tatsächlich brauchst in ein oder mehrere Arrays ein oder versuche die Bearbeitung direkt imn der Tabelle durchzuführen.
Gruss Daniel

AW: Array - Nicht genügend Speicher
10.09.2015 10:16:48
Rudi
Hallo,
kann ich nicht nachvollziehen.
Gruß
Rudi

Anzeige
Mehr Memory ins Blech....(owT)
10.09.2015 10:45:33
EtoPHG

ob dat hilft...
10.09.2015 14:23:34
Michael
Hi zusammen,
ich kann das auch nicht nachvollziehen, selbst auf meiner alten 32bit-Kiste funzt die Deklaration.
Immerhin geht es um 8,4 Mio. "Zellen" im Array, die mit Werten von 4 bis n Bytes gefüllt werden sollen, das macht schon einen Haufen.
Auf die Schnelle finde ich das eingermaßen erhellend:
http://stackoverflow.com/questions/7817427/excel-2007-vba-array-size-limit
Schöne Grüße,
Michael

Anzeige
AW: ob dat hilft...
10.09.2015 14:58:18
Daniel
Es kommt halt auch darauf an, was sonst noch so im Speicher ist.
ich kann bsp ein Array mit 1 Mio Zeilen auf 27 Spalten dimensionieren
habe ich 2 Arrays dieser Grösse, geht's nur bis 17 Spalten.
Gruß Daniel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Speicherprobleme bei Arrays in Excel VBA beheben


Schritt-für-Schritt-Anleitung

  1. Variable deklarieren: Beginne mit der Deklaration des Arrays, um sicherzustellen, dass du den richtigen Datentyp verwendest. Ein Variant-Array ist geeignet, wenn du sowohl Text als auch Zahlen speichern möchtest.

    Dim arr_A() As Variant
  2. Maximale Größe festlegen: Definiere die maximale Anzahl an Zeilen und Spalten, die dein Array haben soll.

    max_z = 20000
    max_s = 420
  3. Aktiviere das Arbeitsblatt: Stelle sicher, dass das richtige Arbeitsblatt aktiv ist, bevor du versuchst, Daten einzulesen.

    Worksheets("A").Activate
  4. Array dimensionieren: Verwende ReDim, um das Array mit der festgelegten Größe zu initialisieren.

    ReDim arr_A(max_z, max_s)
  5. Daten einlesen: Achte darauf, nur die Bereiche einzulesen, die du tatsächlich benötigst, um den Speicherplatz effizient zu nutzen.


Häufige Fehler und Lösungen

  • Laufzeitfehler 7: Nicht genügend Speicher: Dieser Fehler tritt auf, wenn der Speicherplatz für Variablen überschritten wird. Reduziere die Größe des Arrays oder versuche, nur die benötigten Zellen zu laden.

  • Es ist nicht genügend Speicherplatz vorhanden: Überprüfe, ob andere Programme oder Prozesse im Hintergrund laufen, die den verfügbaren Speicher beanspruchen. Schließe unnötige Anwendungen, um mehr Speicher freizugeben.


Alternative Methoden

  • Direkte Bearbeitung in der Tabelle: Statt große Datenmengen in ein Array zu laden, kannst du die Bearbeitung direkt in der Excel-Tabelle durchführen. Dies kann den Speicherbedarf verringern.

  • Teilen des Arrays: Teile große Arrays in kleinere Arrays auf, um die Speicherauslastung zu reduzieren. Dies kann helfen, den laufzeitfehler 7 zu vermeiden.


Praktische Beispiele

Hier ist ein Beispiel, wie du ein Array in kleinen Teilen einlesen kannst:

Dim arr_A() As Variant
Dim i As Long

' Beispiel für das Einlesen in kleineren Schritten
For i = 1 To 5000
    ' Daten aus dem Arbeitsblatt einlesen
    arr_A(i) = Worksheets("A").Cells(i, 1).Value
Next i

Mit dieser Methode lädst du nur einen Teil der Daten, was den Speicherbedarf verringert.


Tipps für Profis

  • Speicherüberwachung: Nutze den Task-Manager, um den Speicherverbrauch von Excel zu überwachen und sicherzustellen, dass du nicht an die Grenzen stößt.

  • Optimierung der Daten: Überlege, ob du Daten in ein externes Datenbankformat exportieren kannst, um die Excel-Speichergrenzen zu umgehen.

  • Vermeidung von großen Arrays: Wenn möglich, arbeite mit Datenbankabfragen oder Filterfunktionen, statt große Arrays in den Speicher zu laden.


FAQ: Häufige Fragen

1. Was kann ich tun, wenn ich den Fehler "Laufzeitfehler 7" bekomme?
Reduziere die Größe deines Arrays oder versuche, nur die benötigten Zellen einzulesen. Achte auch darauf, dass genügend Arbeitsspeicher zur Verfügung steht.

2. Wie kann ich sicherstellen, dass ich genügend Speicherplatz habe?
Überprüfe, welche Programme im Hintergrund laufen, und schließe unnötige Anwendungen. Auch das Bereinigen des Systems kann helfen, Speicherplatz freizugeben.

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