Array zur Laufzeit mit Zahlen füllen

Hallo Wissende,

Dim arrT(169) ist mir bekannt und ich weiß wie ich das befülle.

Ich möchte aber diesen Weg wählen
Dim arrT
arrt=Array(1,2,3)

dabei aber 1,2,3 nicht fest vorgeben, sondern das Array erst zur Laufzeit befüllen. Alle Versuche scheiterten bislang. Geht das gar nicht?

Prinziepiell ist das eine Excel-Vba Frage, die auskommentierte Schleife soll später in Excel-Vba laufen.
Aber jetzt interessiert es mich grundsätzlich, also auch zusätzlich VB-Antworten sehr angenehm.

Option Explicit

Sub tt()
Dim N, arrT, StrT

arrT = Array(1, 2, 3)
MsgBox UBound(arrT) ' **2**

arrT = Array("1", "2", "3")
MsgBox UBound(arrT) ' **2**

StrT = """1"", ""2"", ""3"""
MsgBox StrT '"1","2","3"
arrT = Array(StrT)
MsgBox UBound(arrT) ' **0**

StrT = "1" & "," & "2" & "," & "3"
MsgBox StrT '1,2,3
arrT = Array(StrT)
MsgBox UBound(arrT) ' **0**

StrT = "1, 2, 3"
arrT = Array(StrT)
MsgBox UBound(arrT) ' **0**

'For N = 1 To 300
' StrT = StrT & N ^ 2 & ","
'Next N
'StrT = Left(StrT, Len(StrT) - 1)
''MsgBox StrT
'arrT = Array(StrT)
'MsgBox UBound(arrT)
'MsgBox Len(StrT)
End Sub

Danke ^ Gruß
Reinhard

Hallo Reinhard,

wenn Du ein Array erst später füllen willst, oder es variable halten willst, bleibt die Klammer beim Dimensionieren leer. Schreiben musst Du die Klammer aber.
Wenn Du Werte aus einem String in das Array schreiben möchtest, geht das mit Split.

Gruß Rainer

Sub tt()
 Dim Arr() As String
 Dim txt As String
 txt = "1,2,3,4,5,6,7"
 Arr = Split(txt, ",")
 ReDim Arr(UBound(Arr) + 1)
 Arr(UBound(Arr)) = 8
End Sub

wenn Du ein Array erst später füllen willst, oder es variable
halten willst, bleibt die Klammer beim Dimensionieren leer.
Schreiben musst Du die Klammer aber.

Hallo Rainer,

also geht meine Idee nicht das Array zur Laufzeit befüllen MIT Benutzung des Array-Befehls?

Gut, wird mit der Variablenplatzreservierung bei Programmstart zusammenhängen.

Gruß
Reinhard

Hallo Reinhard,

also geht meine Idee nicht das Array zur Laufzeit befüllen
MIT Benutzung des Array-Befehls?

also mit ‚geht nicht‘ lege ich mioch ungern fest. Nachher kommt Alex und zeigt wie es doch geht. :smile:

Aber wenn ich mir Deinen Versuch und die Lösung ansehe, unterscheiden die sich doch nur durch 7 Zeichen.
‚Split()‘
Derr rest sieht genauso aus. Warum dann nicht Split schreiben?

Gruß Rainer