Hallo,
da die letzte Frage ein wenig aus dem Ruder gelaufen ist, möchte ich hier erneut die Frage eröffnen.
Wenn man eine For…Next-Schleife programmiert, hat man einen Zähler, mit dem man arbeiten kann.
So weit, so gut.
Nutzt man eine For…Each-Schleife, benötigt man keinen Zähler, der da irgendwie mit läuft.
Dennoch wird VBA doch irgendwo einen internen Zähler haben, damit er das aktuelle „Item“/Wert oder wie auch immer für sich definieren kann.
Wie kann man auf diesen Zähler zugreifen?
Wenn ich zum Beispiel (!) sage:
Private Sub Constant_demo_Click()
'fruits is an array
fruits = Array("apple", "orange", "cherries")
Dim fruitnames As Variant
'iterating using For each loop.
For Each I In fruits
x = Len(I)
fruitnames = fruitnames & I & Chr(10)
Next
MsgBox fruitnames
End Sub
kann ich mit x = Len(I) auf die Länge des Textes eingehen.
Wie kann ich aber - ohne das ich auf das Array zugreife (da ich nicht in jeder For-Each-Schleife auf eine Array zugreife) - auf die „Position“ eingehen, bei der sich die For-Each-Schleife gerade befindet?
So etwas wie
x = I.Item
finde ich nicht.
For-Each-Schleifen kann man ja für alle möglichen Auflistungen benutzen: Wörter in einem Dokument, installierte Schriftarten, ein Range-Objekt etc.
und ich möchte auf den internen Zähler zugreifen, auf den vermutlich eben auch die For-Each-Schleife zugreift, damit sie weiß, „bei welchem Item bin ich denn gerade“.
Für antwortweisende Fragen bin ich gern zu haben.
Bitte keine Diskussion, ob Programmierung in VBA sinnvoll, gut, gefährlich oder sonst was ist.
Ich möchte einfach NUR eine Lösung zu meinem Gedankengang.
Danke
Tobi@s