Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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?
Antworten 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
Antworten 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
Antworten 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.
Antworten Top


Gehe zu:


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