Microsoft Excel

Herbers Excel/VBA-Archiv

Kann man Arrayinhalte dauerhaft speichern?

Betrifft: Kann man Arrayinhalte dauerhaft speichern? von: Micha
Geschrieben am: 03.09.2004 17:15:37

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

  


Betrifft: AW: Kann man Arrayinhalte dauerhaft speichern? von: nighty
Geschrieben am: 03.09.2004 17:18:10

hi micha :)

public as var integer bzw, string usw.

in einem allgemeinen modul abzulegen

gruss nighty


  


Betrifft: AW: Kann man Arrayinhalte dauerhaft speichern? von: nighty
Geschrieben am: 03.09.2004 17:20:05

hi micha :)

public DeineVar as integer

so natuerlich ;))

gruss nighty

p.s.
bin dauernd abgelenkt :))


  


Betrifft: AW: Kann man Arrayinhalte dauerhaft speichern? von: Micha
Geschrieben am: 03.09.2004 17:26:37

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


  


Betrifft: AW: Kann man Arrayinhalte dauerhaft speichern? von: nighty
Geschrieben am: 03.09.2004 17:38:04

hi micha

:)

gruss nighty

Public Daten(1 To 2000, 1 To 2000) As Integer


  


Betrifft: AW: Kann man Arrayinhalte dauerhaft speichern? von: nighty
Geschrieben am: 03.09.2004 17:40:47

hi micha :)

andre seine variante ist dauerhaft ,meine solange die datei geoeffnet ist.

gruss nighty


  


Betrifft: AW: Kann man Arrayinhalte dauerhaft speichern? von: Luschi
Geschrieben am: 03.09.2004 17:41:57

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


  


Betrifft: AW: Kann man Arrayinhalte dauerhaft speichern? von: Luschi
Geschrieben am: 03.09.2004 17:42:01

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


  


Betrifft: AW: Kann man Arrayinhalte dauerhaft speichern? von: andre
Geschrieben am: 03.09.2004 17:19:22

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.


  


Betrifft: Was nur wenige wissen !!! von: Nepumuk
Geschrieben am: 03.09.2004 19:54:24

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


  


Betrifft: *staun* von: ypsilon
Geschrieben am: 03.09.2004 20:04:29

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


  


Betrifft: AW: *staun* von: Nepumuk
Geschrieben am: 03.09.2004 20:14:55

Hallo Micha,
da gibt es ein Buch in dem so etwas steht. Findest du hier:

http://books.global-investor.com/books/15282.htm?ginPtrCode=00000&identifier=3b841c720a2492842cee8df40cb95a52

Ist momentan sogar im Angebot :-)
Gruß
Nepumuk


 

Beiträge aus den Excel-Beispielen zum Thema "Kann man Arrayinhalte dauerhaft speichern?"