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 )
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
Eine Frage hätt ich noch wo wir schon dabei sind
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?