Varibalen in With oder For - Array ?

Hallo zusammen,

möchte in meinem Makro Variablen in einer Schleife ansprechen. Beim googlen bin ich auf Array gestoßen, habs leider nicht richtig verstanden, da dazu dann doch die VBA-Kenntnisse zu gering sind. Vielleicht was hier jemand ne einfachere Lösung hat kann es knapp umreissen wie und was ich da machen muss.

Als Beispiel mal:
Ich habe Variablen var1,var2,var3,var4,var5 die ich „befüllen“ möchte mit var1 = range(„A1“), var2 = range(„A2“).

Anstatt dies nun 5 mal untereinander zu schreiben, möchte ich dies in einer Schleife machen, z.B.:

For i = 1 to 5
var**(i)** = range(„A“&i)
next i

Nun weiss ich nicht wie ich da die Variable ansprechen kann.
Hat einer einen Vorschlag? (nach Möglichkeit für Nicht-so-VBA-oder-andere-Programmiersprachen-belesene verständlich :smile:)

Aso, ist für Excel 2003
Danke schonmal!

MfG

Brille

For i = 1 to 5
var**(i)** = range(„A“&i)
next i

Nun weiss ich nicht wie ich da die Variable ansprechen kann.

Hallo Brille,

du machst es doch richtig.
„Normalerweise“ beginnt der Index bei inizierten Variablen bei 0.
Das kann man ändern, siehe „Option Base“ in der Hilfe.
Oder bei der Deklaration.

Teste mal diese Codes und achte auf die Indices.
Dann experimentiere mit den Codes.

Sub tt1()
Dim i As Long, var(4) As Variant
For i = 0 To 4
 var(i) = Range("A" & i + 1)
Next i
Call Anzeigen(var)
End Sub

Sub tt2()
Dim i As Long, var(1 To 5) As Variant
For i = 1 To 5
 var(i) = Range("A" & i)
Next i
Call Anzeigen(var)
End Sub

Sub Anzeigen(v)
Dim A As Integer
For A = LBound(v) To UBound(v)
 MsgBox "var(" & A & ")=" & vbCr & v(A)
Next A
End Sub

Gruß
Reinhard

Hallo Reinhard,

danke, das funktioniert!

Eine Frage hätt ich noch wo wir schon dabei sind :stuck_out_tongue:
Ich möchte dies auch für ein Formular benutzen und hab diesen Code von dir gefunden:

Dim T As Byte
For T = 1 To 3
UserForm1.Controls(„TextBox“ & T).Value = Cells(1, T)
Next Taus Archiv www

Wie kann ich hier Bezeichnungsfelder ansprechen? Hab mal stumpf TextBox mit Label getauscht, funktioniert aber nicht…weisst du da die Bezeichnung/Befehl für?

MfG

Hallo Brille.

Hab mal stumpf TextBox mit Label getauscht, funktioniert aber nicht

Hast Du denn auch „.Value“ durch „.Caption“ ersetzt? Vielleicht geht’s ja dann.

VG
Carsten

Danke euch beiden, klappt alles!

Hast Du denn auch „.Value“ durch „.Caption“ ersetzt?

Hm, klingt logisch und klappt dann auch :stuck_out_tongue:

Danke!