arrays automatisch erzeugen und deklarieren... - Im Nachhinein deklarieren....

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    arrays automatisch erzeugen und deklarieren... - Im Nachhinein deklarieren....

    Hi Leute,

    Ich habe wieder mal eine Spezial-Frage an euch...

    Kennt jemand von euch, eine Methode, wie man Arrays dynamisch erzeugen kann...

    Also Beispiel (PseudoCode):

    Visual Basic-Quellcode

    1. For indx=1 to 10
    2. Dim Array_indx() as Long
    3. Next

    --> wobei mit indx die Variable "indx" gemeint wäre....

    Ich weiß dass das eigentlich vom Ablauf her NICHT gehen kann (abgesehen von meinem Code... das geht ja sowieso nicht... sollte aber nur mal meinen Gedanken fassen....)... weil... ja am Anfang alle Variablen deklariert werden müssen... und initialisiert werden...
    Wenn man danach eine neue Variable oder Arrays hinzufügen wollen würde... muss das Programm ja neu gestartet werden, damit diese Variablen auch initialisiert werden können...

    sonst geht's ja nicht... (das einzige was gehen würde... wäre... die Größenänderung bestehender Variablen durch ReDim....)

    Also...

    Das ist mir schon klar...

    Aber vielleicht kennt ja jemand einen Schmäh... wie man diese Gegebenheit umgehen könnte bzw. "austricksen" könnte...
    bzw. eine Methode... wie man vielleicht ein Array in Array bilden könnte... - also, das wäre im Moment mal ne spontane, halbdurchdachte Idee meinerseits... :huh:

    Hat jemand ne Idee?


    VG Tim
    Sorry das ist ja excel, hab ich nicht gesehen (Code rausgenommen)

    Ich versteh zwar deine Frage nicht ganz, aber ich versuchs jetzt trotzdem kurz.

    Auch in Vba würde ich eine Variable immer vorher deklarieren. Was nicht so gut ausssieht ist, wenn eine deklaration in einer Schleife gemacht wird. Dafür ist die initialisierung vorgesehen wie auch z.B. redim oder redim preserve.

    Eventuell müsstes du deine Frage konkretisieren, damit das Verständlich ist.

    Ich hab dir ein Beispiel wie du eine Array mit Arrays füllen kannst.

    VB.NET-Quellcode

    1. Option Explicit
    2. Public Sub start()
    3. Dim j As Integer
    4. Dim i As Integer
    5. Dim iArr() As Integer
    6. Dim arrArr(10) As Variant
    7. Dim iRnd As Integer
    8. For i = 0 To 10
    9. iRnd = Int((10 - 5 + 1) * Rnd + 5)
    10. ReDim iArr(iRnd - 1)
    11. For j = 0 To iRnd - 1
    12. iArr(j) = j
    13. Next
    14. arrArr(i) = iArr
    15. Next
    16. Stop
    17. End Sub


    Eventuell gibt es in den neueren Excel-Versionen schon bessere Möglichkeiten für solche Tricks. Ist bei mir schon länger her das ich mit VBA gearbeitet habe.

    Freundliche Grüsse

    exc-jdbi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „exc-jdbi“ ()

    hi exc-jdbi,

    Danke für deinen Post...

    Nein, das meinte ich nicht... das weiß ich bereits, dass man mit ReDim arbeiten kann... auf das habe ich bei meinem 1.ten Post schon hingewiesen:

    Ich weiß dass das eigentlich vom Ablauf her NICHT gehen kann (abgesehen von meinem Code... das geht ja sowieso nicht... sollte aber nur mal meinen Gedanken fassen....)... weil... ja am Anfang alle Variablen deklariert werden müssen... und initialisiert werden...
    Wenn man danach eine neue Variable oder Arrays hinzufügen wollen würde... muss das Programm ja neu gestartet werden, damit diese Variablen auch initialisiert werden können...

    sonst geht's ja nicht... (das einzige was gehen würde... wäre... die Größenänderung bestehender Variablen durch ReDim....)


    Ich wollte nur mal generell wissen, ob es irgendeine Methode oder bestimmte Befehle gibt, mit der man Variablen im Nachhinein deklarieren und initialisieren kann, OHNE dass das Programm von neuem ausgeführt werden muss, sodass eine automatische Erzeugung von Variablen und deren Deklaration überhaupt ermöglicht werden kann...
    und falls dem so ist... würde mich ein Implementierungsansatz interessieren...

    sry. falls ich mich anfangs, nicht so klar ausgedrückt habe... ich hoffe nun, dass ich meine Frage, besser bzw. verständlicher machen konnte...

    Es ist aber jz nur mal generell so ne Frage... also NIX SUPER WICHTIGES... ;)

    Trotzdem Danke für's Erste...

    VG Tim