Dynamisch geht nur eindimensional.
Man könnte sich jetzt so ein Konstrukt ausdenken:
Dim wert() as Variant
Dim innererWert() as String
neueGrösse = 121
Redim wert( neueGrösse ) as Variant
For i = 0 to ubound( wert )
zweiteDimension = 6
Redim innererWert( zweiteDimension ) as String
For j = 0 to ubound( innererWert )
innererWert( j ) = "DeinString"
Next j
wert( i ) = innererWert
Next i
Aber da Du das ganze in einer View willst, würde ich mir gleich von Anfang an überlegen, das in Dokumenten zu speichern: Erste Dimension = Dokument, zweite Dimension = Feldwerte im Dokument
Hm, ein Auszug aus der Hilfe:
Arrays can have up to 8 dimensions. The first ReDim statement for an array sets the number of dimensions for the array. Subsequent ReDim statements for the array can change the upper and lower bounds for each dimension, but not the number of dimensions.
Und wenn ich das hier debugge sieht das auch gut aus:
Dim meinArray() as String
redim meinArray(2, 0)
redim meinArray(2, 1)
redim meinArray(2, 2)
redim meinArray(2, 3)
...
Oder hab ich was missverstanden?
und ein Redim Preserve ist verhältnismäßig teuer.
Ich würde erst einmal alle Elemente in der Schleife zählen und dann das Array anlegen:
Forall q In quartal
neueGrösse = neueGrösse + 1
End Forall
Dim arr() As String
Redim arr(0,neueGrösse) As String ' wichtig Typ wieder angeben
neueGrösse=0
Forall q In quartal
neueGrösse = neueGrösse + 1
zahl = Strleft(q,".")
t_wert = "Quartal 1, " & Cstr(zahl)
arr(0,neueGrösse) = t_wert
End Forall