Wie komme ich an die einzelnen Array Elemente heran?
#1
Hallo,

habe folgenden Code-Schnipsel:

Sub ArrayList_Methoden()

Dim arList As ArrayList
Set arList = New ArrayList
arList.Add (Range("I1:I10"))

Debug.Print arList.Item  ???? ' Wie komme ich an die einzelnen Elemente dran?

End Sub

Ich kann im Lokal-Fenster bei der Einzelschritt-Compilierung mit der F8 Taste sehen,
dass im Array List die Elemente abgespeichert wurden.

Aber wie komme ich dran?
Top
#2
Hallo,

in dem du die einzelnen Elemente ansprichst, die du habwen willst, z.B. arList(3, 5) - bedeutet Elemente das 3. Element in der 5. Spalte, sofern das Array nicht 0-Basiert ist, sonst wäre es das 4. Element in der 6. Spalte.
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
[-] Folgende(r) 1 Nutzer sagt Danke an Glausius für diesen Beitrag:
  • Alison
Top
#3
Hallo,

ArrayList ist kein Standardobjekt von VBA. Solltest Du die Bibliothek mscorlib.dll eingebunden haben (über Extras / Verweise prüfen),
dann führt das Einlesen einer Range dazu, dass die quasi dort 1 zu 1 abgelegt wird. Der Code wäre dann so ...

Code:
ub ArrayList_Methoden()

  Dim arList As ArrayList
  Set arList = New ArrayList
  
  arList.Add ActiveSheet.Range("I1:I10")
  
  Debug.Print arList.Item(0)(1, 1)
  Debug.Print arList.Item(0)(2, 1)
  Debug.Print arList.Item(0)(3, 1)
  Debug.Print arList.Item(0)(4, 1)
  Debug.Print arList.Item(0)(5, 1)
  
End Sub

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
[-] Folgende(r) 1 Nutzer sagt Danke an maninweb für diesen Beitrag:
  • Alison
Top
#4
Hallo,

ich hatte zu "hoch" gezählt, statt eine 1 eine Null zuerst, deshalb scheiterten meinen ganzen Versuche. Danke!

Auch interessant (zumindest für mich) , es macht wohl dann doch noch einen Unterschied, ob

man nur Range(Bereich) nimmt oder ActiveSheet.Range(Bereich) (siehe Lokalfenster beiim Einzelschrittmodus)

Wieder was gelernt.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste