Dynamisches Array: Warum subscript out of range


  • :-? steh ich auf m schlauch?


    wie kann man ein array denn bitte dynamisch vergrößern?


    da wo jetzt "Redim Preserve NameArray(2,1)" steht soll später statt der 2 der Counter rein

  • If you do include Preserve in a ReDim statement, the only bound that LotusScript lets you change (by incrementing) is the upper bound of the last array dimension, in which case LotusScript allocates the appropriate amount of additional storage and initializes the additional array elements. You cannot change the number of dimensions of an array or the data type of its elements with a ReDim statement.



    :roll:


    ich geh heim :würg:

  • Lass die Zeile Redim NameArray(1,1) weg und dann in der If-Schleife Redim Preserve NameArray(DocCounter%,1)


    PS: Grad erst getestet, das geht auch nur einmal. Wozu brauchste denn ein 2-Dim Array?? Benutze statt dessen doch 2 Arrays

  • Ich verwende für so was immer eine Liste, denn du hast ja einen eindeutigen Schlüssel.
    Dann brauchst du dich auch nicht um Größenänderungen kümmern


    Dim li_Names List As String


    Und dann kannst du die Zuweisung folgendermassen machen:


    li_Names(Trim$(Document.CustomerNumber(0))) = Trim$(Document.Customer(0))


    Unter anderem hat das auch den Vorteil, daß du anhand der Kundennummer direkt auf den Kundennamen zugreifen kannst


    Wenn du dann durch alle Elemente durchgehen willst:


    forall x in li_Names
    msgbox x 'liefert den Namen
    msgbox listtag(x) 'liefert die Kundennummer
    end forall