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

Kann man Arrayinhalte dauerhaft speichern?

Forumthread: Kann man Arrayinhalte dauerhaft speichern?

Kann man Arrayinhalte dauerhaft speichern?
03.09.2004 17:15:37
Micha
Hallo
Ich hab folgendes Problem: die Arrays meines Programms sammeln laufend Daten, und wenn ich das Program beende ist natürlich nichts mehr in den Arrays gespeichert... kann man irgendwie die Daten dauerhaft in den Arrays belassen?
danke & mfg
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kann man Arrayinhalte dauerhaft speichern?
03.09.2004 17:18:10
nighty
hi micha :)
public as var integer bzw, string usw.
in einem allgemeinen modul abzulegen
gruss nighty
AW: Kann man Arrayinhalte dauerhaft speichern?
03.09.2004 17:20:05
nighty
hi micha :)
public DeineVar as integer
so natuerlich ;))
gruss nighty
p.s.
bin dauernd abgelenkt :))
AW: Kann man Arrayinhalte dauerhaft speichern?
03.09.2004 17:26:37
Micha
Hi nighty
also ich muss das array einfach im Bereich Deklarationen als
"Public Var Daten(1 to 2000,1 to 2000) as integer" speichern dann bleiben sie auch nach beendetem Programm erhalten..?
Danke
Anzeige
AW: Kann man Arrayinhalte dauerhaft speichern?
03.09.2004 17:38:04
nighty
hi micha
:)
gruss nighty
Public Daten(1 To 2000, 1 To 2000) As Integer
AW: Kann man Arrayinhalte dauerhaft speichern?
03.09.2004 17:40:47
nighty
hi micha :)
andre seine variante ist dauerhaft ,meine solange die datei geoeffnet ist.
gruss nighty
AW: Kann man Arrayinhalte dauerhaft speichern?
03.09.2004 17:41:57
Luschi
Hallo Micha,
Arrays werden ausschließlich im Arbeitsspeicher gehalten und sind eine besondere Form
von Varianlen. Verliert der Arbeitsspeicher seinen Strom oder das Anwenderprogram wird
beendet, dann sind auch die Variablen futzsch.
Um die Array-Werte zu erhalten, mußt Du sie in eine Tabelle speichern, bevor Du Excel
verläßt. Beim Neustart kannst Du sie dan wieder aus der Tabelle in den Arbeitsspeicher
laden.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Kann man Arrayinhalte dauerhaft speichern?
03.09.2004 17:42:01
Luschi
Hallo Micha,
Arrays werden ausschließlich im Arbeitsspeicher gehalten und sind eine besondere Form
von Varianlen. Verliert der Arbeitsspeicher seinen Strom oder das Anwenderprogram wird
beendet, dann sind auch die Variablen futzsch.
Um die Array-Werte zu erhalten, mußt Du sie in eine Tabelle speichern, bevor Du Excel
verläßt. Beim Neustart kannst Du sie dan wieder aus der Tabelle in den Arbeitsspeicher
laden.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Kann man Arrayinhalte dauerhaft speichern?
03.09.2004 17:19:22
andre
Hallo Micha,
lege sie z.B. in einem ausgeblendeten Blatt ab. Da werden sie dann mit der Datei gespeichert. Ich trenne z.B. auch in eine Programmdatei - oft als Addin - , eine Datei wo ich Daten, Layouts usw. habe und daraus wird für den user dann eine dritte Datei mit den gewünschten Ergebnissen generiert.
Anzeige
Was nur wenige wissen !!!
03.09.2004 19:54:24
Nepumuk
Hallo an Alle,
kleinere Arrays lassen sich auch als Name speichern. Die Gesamtlänge darf aber 236 Zeichen nicht übersteigen, wobei zur Gesamtlänge der Einträge noch je ein Komma pro Eintrag gezählt werden muss. Dieses Array wird dann zusammen mit der Mappe gespeichert.
Beispiel:


Option Explicit
Public Sub ArrayToName()
    Dim int_Array(1 To 82) As Integer, int_index As Integer
    For int_index = 1 To 82
        int_Array(int_index) = int_index
    Next
    ThisWorkbook.Names.Add Name:="MyName", RefersTo:=int_Array
    ThisWorkbook.Names("MyName").Visible = False
End Sub
Public Sub NameToArray()
    Dim str_text As String, int_Array(1 To 82) As Integer, int_index As Integer
    str_text = ThisWorkbook.Names("MyName").Value
    str_text = Mid$(str_text, 3, Len(str_text) - 3) & ","
    Do
        int_index = int_index + 1
        int_Array(int_index) = Val(Left$(str_text, InStr(1, str_text, ",") - 1))
        str_text = Mid$(str_text, InStr(1, str_text, ",") + 1)
    Loop Until str_text = ""
End Sub


Gruß
Nepumuk
Anzeige
*staun*
03.09.2004 20:04:29
ypsilon
hi Nepumuk,
eine einzige klitzekleine frage:
wie kommt man auf sowas ?
ich erzähle nie wieder jemand das ich auch nur den hauch einer ahnung von vba habe
cu Micha
;
Anzeige

Infobox / Tutorial

Arrayinhalte in Excel dauerhaft speichern


Schritt-für-Schritt-Anleitung

Um Arrayinhalte in Excel dauerhaft zu speichern, kannst Du die folgenden Schritte befolgen:

  1. Array deklarieren: Zuerst musst Du das Array im VBA-Editor deklarieren. Öffne den VBA-Editor mit ALT + F11 und erstelle ein neues Modul.

    Public Daten(1 To 2000, 1 To 2000) As Integer
  2. Daten speichern: Bevor Du die Excel-Datei schließt, speichere die Inhalte des Arrays in einem Arbeitsblatt. Du kannst dies mit einer Schleife tun:

    Dim i As Integer, j As Integer
    For i = 1 To 2000
       For j = 1 To 2000
           Worksheets("Datenblatt").Cells(i, j).Value = Daten(i, j)
       Next j
    Next i
  3. Daten laden: Wenn Du das Programm wieder öffnest, lade die Daten aus dem Arbeitsblatt zurück in das Array:

    For i = 1 To 2000
       For j = 1 To 2000
           Daten(i, j) = Worksheets("Datenblatt").Cells(i, j).Value
       Next j
    Next i

Häufige Fehler und Lösungen

  • Fehler beim Speichern: Wenn Du die Daten nicht speichern kannst, stelle sicher, dass das Arbeitsblatt, in das Du schreibst, existiert und nicht geschützt ist.

  • Daten werden nicht geladen: Überprüfe, ob die Excel-Datei korrekt geöffnet ist und ob die Zellen im Arbeitsblatt die erwarteten Werte enthalten.


Alternative Methoden

  1. Ausgeblendetes Blatt verwenden: Speichere die Array-Daten in einem ausgeblendeten Blatt. Auf diese Weise bleiben die Daten auch nach dem Schließen der Datei erhalten.

  2. Namen speichern: Kleinere Arrays können auch als Namen in Excel gespeichert werden. Hier ist ein Beispiel:

    ThisWorkbook.Names.Add Name:="MyName", RefersTo:=int_Array
  3. Externe Datenbank: Eine weitere Möglichkeit ist, die Daten in einer externen Datenbank zu speichern, z.B. Access oder SQL Server.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du ein Array in Excel mit VBA speichern und laden kannst:

Sub SpeichernUndLaden()
    ' Deklaration des Arrays
    Public Daten(1 To 10) As Integer

    ' Daten im Array speichern
    Dim i As Integer
    For i = 1 To 10
        Daten(i) = i * 10
    Next i

    ' Speichern in die Excel-Tabelle
    For i = 1 To 10
        Worksheets("Datenblatt").Cells(i, 1).Value = Daten(i)
    Next i

    ' Laden der Daten zurück ins Array
    For i = 1 To 10
        Daten(i) = Worksheets("Datenblatt").Cells(i, 1).Value
    Next i
End Sub

Tipps für Profis

  • Effiziente Datenspeicherung: Überlege, ob Du Daten in einem Array oder in Tabellenform speichern möchtest, um die Effizienz zu verbessern.

  • Verwendung von Collections: Wenn die Datenstruktur komplex ist, kannst Du auch Collections oder Dictionaries verwenden, um die Daten flexibler zu speichern.

  • Datenvalidierung: Implementiere eine Datenvalidierung, bevor Du die Daten in das Array speicherst, um Fehler zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass meine Array-Daten nicht verloren gehen?
Speichere die Daten vor dem Schließen der Excel-Datei in einem Arbeitsblatt oder verwende ein ausgeblendetes Blatt.

2. Kann ich auch große Arrays speichern?
Ja, Du kannst große Arrays speichern, achte jedoch darauf, dass die Excel-Datei nicht zu groß wird, um die Leistung zu erhalten.

3. Was passiert, wenn ich Excel ohne Speichern schließe?
Alle nicht gespeicherten Daten im Arbeitsspeicher, einschließlich Arrays, gehen verloren. Stelle sicher, dass Du regelmäßig speicherst.

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