VBA-Array-Liste – Mega-Leitfaden für 2022 aktualisiert
In this Article
- Verwendung einer VBA-Array-Liste
- Verteilen Ihrer Excel-Anwendung, die eine Array-Liste enthält
- Umfang eines Array-Listenobjekts
- Auffüllen und Auslesen Ihrer Array-Liste
- Elemente in einer Array-Liste bearbeiten und ändern
- Ein Array von Werten zu einer Array-Liste hinzufügen
- Einen Bereich von Elementen aus einer Array-Liste auslesen/abrufen
- Suche nach Elementen innerhalb einer Array-Liste
- Elemente einfügen und entfernen
- Eine Array-Liste sortieren
- Eine Array-Liste klonen
- Eine Array-Liste in ein herkömmliches VBA-Array-Objekt hineinkopieren
- Eine Array-Liste in einen Arbeitsblattbereich hineinkopieren
- Alle Elemente aus einer Array-Liste löschen
- Methoden der Array-Liste – Zusammenfassung für Excel VBA
Verwendung einer VBA-Array-Liste
Eine Array-Liste ist ein VBA-Objekt, das zum Speichern von Werten verwendet werden kann. Es ist einem Sammlungsobjekt ähnlich, ist aber aus programmiertechnischer Sicht wesentlich flexibler. Lassen Sie uns einige Unterschiede zwischen Array-Listen, Sammlungen und Arrays diskutieren.
- Das Sammlungsobjekt hat nur zwei Methoden (Add, Remove) und zwei Eigenschaften (Count, Item), während eine Array-Liste über viel mehr verfügt.
- Das Sammlungsobjekt ist schreibgeschützt. Sobald Werte hinzugefügt wurden, kann der indizierte Wert nicht mehr geändert werden, während eine Bearbeitung bei einer Array-Liste möglich ist.
- Das Array-Listenobjekt vergrößert und verkleinert sich je nach Anzahl der darin enthaltenen Elemente. Es muss vor der Verwendung nicht wie ein Array dimensioniert werden.
- Die Array-Liste ist eindimensional (wie das Sammlungsobjekt) und der Standard-Datentyp ist Variant, was bedeutet, dass sie jeden Datentyp akzeptiert, egal ob es sich um Zahlen, Text oder Datum handelt.
In vielerlei Hinsicht behebt die Array-Liste eine Reihe von Mängeln des Sammlungsobjekts. Sie ist sicherlich viel flexibler in ihren Möglichkeiten.
Das Array-Listenobjekt ist nicht Teil der Standard-VBA-Bibliothek. Sie können es in Ihrem Excel-VBA-Code verwenden, indem Sie die späte oder frühe Bindung nutzen.
Sub SpaeteBindungBeispiel()
Dim MeineListe As Object
Set MeineListe = CreateObject("System.Collections.ArrayList")
End Sub
Sub FrueheBindungBeispiel()
Dim MeineListe As New ArrayList
End Sub
Um das Beispiel zur frühen Bindung zu verwenden, müssen Sie zunächst in VBA einen Verweis auf die Datei „mscorlib.tlb“ eingeben.
Wählen Sie dazu im Fenster des Visual Basic Editor (VBE) die Option „Extras | Verweise“. Es erscheint ein Pop-up-Fenster mit allen verfügbaren Verweisen. Scrollen Sie nach unten zu ‚mscorlib.dll‘ und markieren Sie das Kästchen daneben. Klicken Sie auf OK und diese Bibliothek ist nun Teil Ihres Projekts:
Einer der großen Nachteile eines Array-Listenobjekts ist die Tatsache, dass es keine „IntelliSense“ hat. Normalerweise sehen Sie bei der Verwendung eines Objekts in VBA, z. B. eines Bereichs, eine Popup-Liste mit allen verfügbaren Eigenschaften und Methoden. Bei einem Array-Listenobjekt ist dies nicht der Fall und manchmal müssen Sie sorgfältig prüfen, ob Sie die Methode oder Eigenschaft richtig geschrieben haben.
Auch wenn Sie im VBE-Fenster die Taste F2 drücken und nach „arraylist“ suchen, wird nichts angezeigt, was für den Entwickler nicht sehr hilfreich ist.
Ihr Code wird mit der frühen Bindung wesentlich schneller laufen, da alles im Voraus kompiliert wird. Bei der späten Bindung muss das Objekt kompiliert werden, während der Code aufgeführt wird.
Verteilen Ihrer Excel-Anwendung, die eine Array-Liste enthält
Wie bereits erwähnt, ist das Array-Listenobjekt nicht Teil von Excel VBA. Das bedeutet, dass jeder Ihrer Kollegen, an den Sie die Anwendung weitergeben, Zugriff auf die Datei ‚mscorlib.tlb‘ haben muss.
Diese Datei befindet sich normalerweise unter: C:\Windows\Microsoft.NET\Framework\v4.0.30319
Es könnte sich lohnen, etwas Code zu schreiben (unter Verwendung der Dir-Methode), um zu prüfen, ob diese Datei vorhanden ist, wenn ein Benutzer die Anwendung lädt, damit er eine „weiche Landung“ erlebt, wenn sie nicht gefunden wird. Wenn sie nicht vorhanden ist und der Code ausgeführt wird, treten Fehler auf.
Außerdem muss der Benutzer die richtige Version von .Net Framework installiert haben. Selbst wenn der Benutzer eine neuere Version hat, muss V3.5 installiert sein, sonst funktioniert Ihre Anwendung nicht.
Umfang eines Array-Listenobjekts
Das Array-Listenobjekt ist nur verfügbar, solange die Arbeitsmappe geöffnet ist. Es wird nicht gespeichert, wenn die Arbeitsmappe gespeichert wird. Wenn die Arbeitsmappe erneut geöffnet wird, muss das Array-Listenobjekt mit VBA-Code neu erstellt werden.
Wenn Sie möchten, dass Ihre Array-Liste für den gesamten Code in Ihrem Code-Modul zur Verfügung steht, müssen Sie das Array-Listenobjekt im Declare-Abschnitt ganz oben im Modulfenster deklarieren
Dadurch wird sichergestellt, dass der gesamte Code in diesem Modul auf die Array-Liste zugreifen kann. Wenn Sie möchten, dass jedes Modul innerhalb Ihrer Arbeitsmappe auf das Array-Listenobjekt zugreifen kann, dann definieren Sie es als globales Objekt.
Global MeineSammlung As New ArrayList
Auffüllen und Auslesen Ihrer Array-Liste
Die grundlegendeste Aktion, die Sie durchführen möchten, besteht darin, eine Array-Liste zu erstellen, einige Daten darin zu speichern und dann nachzuweisen, dass die Daten gelesen werden können. Alle Codebeispiele in diesem Artikel gehen davon aus, dass Sie die frühe Bindung verwenden und „mscorlib.tlb“ zu den VBA-Verweisen wie oben beschrieben hinzugefügt haben.
Sub ArrayListeBeispiel()
'Neues Array-Listenobjekt erstellen
Dim MeineListe As New ArrayList
'Elemente zur Liste hinzufügen
MeineListe.Add "Element1"
MeineListe.Add "Element2"
MeineListe.Add "Element3"
'Durch die Array-Liste iterieren, um Werte zu prüfen
For N = 0 To MeineListe.Count - 1
MsgBox MeineListe(N)
Next N
End Sub
In diesem Beispiel wird ein neues Array-Listenobjekt erstellt, das mit 3 Elementen aufgefüllt wird, und dann wird die Liste durchlaufen, wobei jedes Element angezeigt wird.
Beachten Sie, dass der Array-Listenindex bei 0 und nicht bei 1 beginnt, so dass Sie 1 vom Count-Wert subtrahieren müssen.
Sie können auch eine ‚For…Each‘-Schleife verwenden, um die Werte auszulesen:
Sub ArrayListeBeispiel()
'Neues ArrayList-Objekt erstellen
Dim MeineListe As New ArrayList
'Elemente zur Liste hinzufügen
MeineListe.Add "Element1"
MeineListe.Add "Element2"
MeineListe.Add "Element3"
'Durch die Array-Liste iterieren, um Werte zu prüfen
For Each I In MeineListe
MsgBox I
Next I
End Sub
Elemente in einer Array-Liste bearbeiten und ändern
Ein großer Vorteil einer Array-Liste gegenüber einer Sammlung besteht darin, dass die Elemente in der Liste innerhalb Ihres Codes bearbeitet und geändert werden können. Das Sammlungsobjekt ist nur lesbar, während das Array-Listenobjekt schreib- und lesefähig ist.
Sub ArrayListeBeispiel()
'Neues Array-Listenobjekt erstellen
Dim MeineListe As New ArrayList
'Elemente zur Liste hinzufügen
MeineListe.Add "Element1"
MeineListe.Add "Element2"
MeineListe.Add "Element3"
'Eintrag 1 von 'Eintrag2' auf 'Geändert' ändern
MeineListe(1) = "Geändert"
'Durch die Array-Liste iterieren, um nachzuweisen, dass die Änderung stattgefunden hat
For Each I In MeineListe
'Name des Elements anzeigen
MsgBox I
Next I
End Sub
In diesem Beispiel wird das zweite Element („Element2“) auf den Wert „Geändert“ geändert (der Index beginnt bei 0). Wenn die Iteration am Ende des Codes ausgeführt wird, wird der neue Wert angezeigt.
Ein Array von Werten zu einer Array-Liste hinzufügen
Sie können Werte in Ihre Array-Liste einfügen, indem Sie ein Array, das eine Liste dieser Werte oder Verweise auf Zellenwerte in einem Arbeitsblatt enthält, verwenden.
Sub ArrayHinzufuegenBeispiel()
'Array-Listenobjekt erstellen
Dim MeineListe As New ArrayList
'Durch Array-Werte iterieren und sie der Array-Liste hinzufügen
For Each W In Array("A1", "A2", "A3")
'Jeden Array-Wert zur Liste hinzufügen
MeineListe.Add W
Next
'Array-Werte mit Arbeitsblattverweisen durchlaufen und zur Array-Liste hinzufügen
For Each W In Array(Range("A5").Value, Range("A6").Value)
MeineListe.Add W
Next
'Durch die Array-Liste iterieren, um die Werte zu prüfen
For N = 0 To MeineListe.Count - 1
'Listenelement anzeigen
MsgBox MeineListe.Item(N)
Next N
End Sub
Einen Bereich von Elementen aus einer Array-Liste auslesen/abrufen
Durch Anwendung der GetRange-Methode an einer Array-Liste können Sie einen Bereich von aufeinanderfolgenden Elementen, die abgerufen werden sollen, angeben. Die beiden erforderlichen Parameter sind die Startindexposition und die Anzahl der abzurufenden Elemente. Der Code füllt ein zweites Array-Listenobjekt mit der Teilmenge von Elementen, die dann separat gelesen werden können.
Sub BereichLesenExample()
'Objekte definieren
Dim MeineListe As New ArrayList, MeineListe1 As Object
'Elemente zum Objekt 'MeineListe' hinzufügen
MeineListe.Add "Element1"
MeineListe.Add "Element2"
MeineListe.Add "Element3"
MeineListe.Add "Element6"
MeineListe.Add "Element4"
MeineListe.Add "Element7"
'4 Elementen in 'MeineListe' ab Indexposition 2 erfassen
Set MeineListe1 = MeineListe.GetRange(2, 4)
'Durch das Objekt "MeineListe1" iterieren, um die Teilmenge der Elemente anzuzeigen
For Each I In MeineListe1
'Name des Elements anzeigen
MsgBox I
Next I
End Sub
Suche nach Elementen innerhalb einer Array-Liste
Mit der Contains-Methode können Sie prüfen, ob ein bestimmtes Element in Ihrer Liste enthalten ist. Diese Methode gibt True oder False zurück
MsgBox MeineListe.Contains("Element2")
Sie können auch die tatsächliche Indexposition mit der IndexOf-Methode ermitteln. Sie müssen den Startindex für die Suche angeben (normalerweise 0). Der Rückgabewert ist der Index der ersten Instanz des gesuchten Elements. Sie können dann eine Schleife verwenden, um den Startpunkt auf den nächsten Indexwert zu ändern, um weitere Instanzen zu finden, wenn es mehrere doppelte Werte gibt.
Wenn der Wert nicht gefunden wird, wird der Wert -1 zurückgegeben.
Dieses Beispiel demonstriert die Verwendung von ‚Contains‘, Element nicht gefunden und Durchlaufen der Array-Liste, um die Positionen aller doppelten Elemente zu finden:
Sub SucheInListeBeispiel()
'Array-Liste und Variablen definieren
Dim MeineListe As New ArrayList, Sp As Integer, Pos As Integer
'Neue Elemente einschließlich eines Duplikats hinzufügen
MeineListe.Add "Element1"
MeineListe.Add "Element2"
MeineListe.Add "Element3"
MeineListe.Add "Element1"
'Prüfen, ob "Element2" in der Liste enthalten ist - gibt True zurück
MsgBox MeineListe.Contains("Element2")
'Index eines nicht vorhandenen Wertes ermitteln - gibt -1 zurück
MsgBox MeineListe.IndexOf("Element", 0)
'Die Startposition für die Suche auf Null setzen
Sp = 0
'Durch die Liste iterieren, um alle Positionen von "Element1" zu erhalten
Do
'Die Indexposition vom nächsten 'Element1' anhand der Position in der Variablen 'Sp' ermitteln
Pos = MeineListe.IndexOf("Element1", Sp)
'Wenn keine weiteren Instanzen von 'Element1' gefunden werden, dann die Schleife verlassen
If Pos = -1 Then Exit Do
'Die nächste gefundene Instanz und die Indexposition anzeigen
MsgBox MeineListe(Pos) & " bei Index " & Pos
'1 zum letzten gefundenen Indexwert hinzuaddieren - dies wird nun die neue Startposition für die nächste Suche
Sp = Pos + 1
Loop
End Sub
Beachten Sie, dass der verwendete Suchtext zwischen Groß- und Kleinschreibung unterscheidet und Platzhalter nicht zulässig sind.
Elemente einfügen und entfernen
Wenn Sie Ihre Elemente nicht am Ende der Liste hinzufügen möchten, können Sie sie an einer bestimmten Indexposition einfügen, so dass das neue Element in der Mitte der Liste steht. Die Indexnummern werden für die nachfolgenden Einträge automatisch angepasst.
Sub EinfuegenBeispiel()
'Array-Listenobjekt definieren
Dim MeineListe As New ArrayList
'Elemente zur Array-Liste hinzufügen
MeineListe.Add "Element1"
MeineListe.Add "Element2"
MeineListe.Add "Element3"
MeineListe.Add "Element1"
' 'Element6' an der Indexposition 2 einfügen
MeineListe.Insert 2, "Element6"
'Durch die Elemente in der Array-Liste iterieren, um die neue Reihenfolge und Indexpositionen anzuzeigen
For N = 0 To MeineListe.Count - 1
MsgBox MeineListe(N) & " Index " & N
Next N
End Sub
In diesem Beispiel wird „Element6“ an der Indexposition 2 in die Liste eingefügt, so dass „Element3“, das sich an der Indexposition 2 befand, nun an die Indexposition 3 verschoben wird.
Ein einzelnes Element kann mit der Remove-Methode entfernt werden.
MeineListe.Remove "Element"
Es ist zu beachten, dass es keinen Fehler gibt, wenn der Name des Elements nicht gefunden wird. Alle nachfolgenden Indexnummern werden gemäß diesem Entfernvorgang geändert.
Wenn Sie die Indexposition des Elements kennen, können Sie die RemoveAt-Methode verwenden, z. B.
MeineListe.RemoveAt 2
Beachten Sie, dass ein Fehler zurückgegeben wird, wenn die angegebene Indexposition größer als die Anzahl der Elemente in der Array-Liste ist.
Sie können einen Wertebereich aus der Liste entfernen, indem Sie die RemoveRange-Methode verwenden. Die Parameter sind der Startindex und dann die Anzahl der zu entfernenden Elemente, z.B.
MeineListe.RemoveRange 3, 2
Beachten Sie, dass Sie einen Fehler in Ihrem Code erhalten, wenn die Anzahl der Elemente ab dem Startwert größer ist als die Anzahl der Elemente in der Array-Liste ist.
Sowohl bei der RemoveAt- als auch bei der RemoveRange-Methode wäre es ratsam zu prüfen, ob die angegebenen Indexzahlen größer als die Gesamtzahl der Elemente in der Array-Liste sind, um mögliche Fehler abzufangen. Die Count-Eigenschaft gibt die Gesamtzahl der Elemente in der Array-Liste an.
Sub EntfernenBeispiel()
'Array-Listenobjekt definieren
Dim MeineListe As New ArrayList
'Elemente zur Array-Liste hinzufügen
MeineListe.Add "Element1"
MeineListe.Add "Element2"
MeineListe.Add "Element3"
MeineListe.Add "Element1"
MeineListe.Add "Element4"
MeineListe.Add "Element5"
' 'Element6' an Indexposition 2 einfügen
MeineListe.Insert 2, "Element6"
'Element2' entfernen
MeineListe.Remove "Element2"
' 'Element' entfernen - dieses existiert nicht in der Array-Liste, macht aber keinen Fehler
MeineListe.Remove "Element"
'Das Element an der Indexposition 2 entfernen
MeineListe.RemoveAt 2
'2 aufeinanderfolgende Elemente ab der Indexposition 2 entfernen
MeineListe.RemoveRange 3, 2
'Durch die Array-Liste iterieren, um zu zeigen, was übrig ist und an welcher Indexposition es sich jetzt befindet
For N = 0 To MeineListe.Count - 1
MsgBox MeineListe(N) & " Index " & N
Next N
End Sub
Beachten Sie bei der Verwendung von „RemoveAt“ zum Entfernen eines Elements an einer bestimmten Position, dass alle nachfolgenden Indexpositionen geändert werden, sobald dieses Element entfernt wurde. Wenn Sie mehrere Elemente über die Indexposition entfernen, ist es eine gute Idee, mit der höchsten Indexnummer zu beginnen und rückwärts bis zur Position Null zu gehen, damit Sie immer das richtige Element entfernen. Auf diese Weise haben Sie das Problem nicht
Eine Array-Liste sortieren
Ein weiterer großer Vorteil gegenüber einer Sammlung ist die Tatsache, dass Sie die Elemente in aufsteigender oder absteigender Reihenfolge sortieren können.
Das Array-Listenobjekt ist das einzige Objekt in Excel-VBA mit einer Sortiermethode. Die Sortiermethode ist sehr schnell und dies kann ein wichtiger Aspekt bei der Verwendung einer Array-Liste sein.
Beim Sammlungsobjekt musste man sich etwas einfallen lassen, um alle Elemente zu sortieren, aber mit einer Array-Liste ist das sehr einfach.
Die Sort-Methode sortiert in aufsteigender Reihenfolge und die Reverse-Methode in absteigender Reihenfolge.
Sub ArrayListeBeispiel()
'Array-Listenobjekt erstellen
Dim MeineListe As New ArrayList
'Elemente in unsortierter Reihenfolge hinzufügen
MeineListe.Add "Element1"
MeineListe.Add "Element3"
MeineListe.Add "Element2"
'Die Elemente in aufsteigender Reihenfolge sortieren
MeineListe.Sort
'Durch die Elemente iterieren, um die aufsteigende Reihenfolge anzuzeigen
For Each I In MeineListe
'Name des Elements anzeigen
MsgBox I
Next I
'Die Elemente in absteigender Reihenfolge sortieren
MeineListe.Reverse
'Durch die Elemente iterieren, um die absteigende Reihenfolge anzuzeigen
For Each I In MeineListe
'Name des Elements anzeigen
MsgBox I
Next I
End Sub
Eine Array-Liste klonen
Eine Array-Liste hat die Möglichkeit, einen Klon oder eine Kopie von sich selbst zu erstellen. Dies ist nützlich, wenn der Benutzer über ein Frontend und Ihren VBA-Code Änderungen an den Elementen vornimmt, Sie aber eine Kopie der Elemente in ihrem ursprünglichen Zustand als Backup behalten müssen.
Dies könnte dem Benutzer eine Undo-Funktion bieten. Möglicherweise hat er die Änderungen vorgenommen und möchte zur ursprünglichen Liste zurückkehren.
Sub KlonenBeispiel()
'Zwei Objekte definieren - eine Array-Liste und ein Objekt
Dim MeineListe As New ArrayList, MeineListe1 As Object
'Erstes Objekt mit Elementen auffüllen
MeineListe.Add "Element1"
MeineListe.Add "Element2"
MeineListe.Add "Element3"
'MeineListe in MeineListe1 kopieren
Set MeineListe1 = MeineListe.Clone
'Durch MeineListe1 iterieren, um das Klonen nachzuweisen
For Each I In MeineListe1
'Namen des Elements anzeigen
MsgBox I
Next I
End Sub
MeineListe1″ enthält nun alle Elemente von „MeineListe“ in der gleichen Reihenfolge
Eine Array-Liste in ein herkömmliches VBA-Array-Objekt hineinkopieren
Sie können eine einfache Methode verwenden, um die Array-Liste in ein normales VBA-Array zu kopieren:
Sub ArrayBeispiel()
'Array-Listenobjekt und ein Standard-Array-Objekt erstellen
Dim MeineListe As New ArrayList, NeuesArray As Variant
'Array-Liste mit Elementen auffüllen
MeineListe.Add "Element1"
MeineListe.Add "Element2"
MeineListe.Add "Element3"
'Die Array-Liste in das neue Array kopieren
NeuesArray = MeineListe.ToArray
'Durch das neue Array Iterieren - beachten Sie, dass die Anzahl der Array-Listen den maximalen Index liefert
For N = 0 To MeineListe.Count - 1
'Namen des Elements anzeigen
MsgBox NeuesArray(N)
Next N
End Sub
Eine Array-Liste in einen Arbeitsblattbereich hineinkopieren
Sie können Ihre Array-Liste in ein bestimmtes Arbeitsblatt und einen Zellenbezug hineinkopieren, ohne diese durchlaufen zu müssen. Sie müssen nur den ersten Zellenbezug angeben
Sub BereichBeispiel()
'Neues Array-Listenobjekt erstellen
Dim MeineListe As New ArrayList
'Elemente zur Liste hinzufügen
MeineListe.Add "Element1"
MeineListe.Add "Element2"
MeineListe.Add "Element3"
'Das Zielblatt leeren
Sheets("Tabelle1").UsedRange.Clear
'Elemente in eine Zeile kopieren
Sheets("Tabelle1").Range("A1").Resize(1, MeineListe.Count).Value = MeineListe.toArray
'Elemente in eine Spalte kopieren
Sheets("Tabelle1").Range("A5").Resize(MeineListe.Count, 1).Value = _
WorksheetFunction.Transpose(MeineListe.toArray)
End Sub
Alle Elemente aus einer Array-Liste löschen
Es gibt eine einfache Funktion (Clear), um die Array-Liste vollständig zu leeren.
Sub ListeLeerenBeispiel()
'Array-Listenobjekt erstellen
Dim MeineListe As New ArrayList
'Neue Elemente hinzufügen
MeineListe.Add "Element1"
MeineListe.Add "Element2"
MeineListe.Add "Element3"
'Anzahl der Elemente anzeigen
MsgBox MeineListe.Count
'Alle Einträge löschen
MeineListe.Clear
'Die Anzahl der Elemente anzeigen, um nachzuweisen, dass das Löschen funktioniert hat
MsgBox MeineListe.Count
End Sub
In diesem Beispiel werden Elemente in einer Array-Liste erstellt und dann wird diese geleert. Meldungsboxen zeigen Die Anzahl der Elemente in der Array-Liste von vorher und nachher.
Methoden der Array-Liste – Zusammenfassung für Excel VBA
Aufgabe | Parameter | Beispiele |
Element hinzufügen/bearbeiten | Wert | MeineListe.Add „Element1“ |
MeineListe(4)= „Element2“ | ||
Eine Array-Liste klonen | Keine | Dim MeineListe As Object |
Set MeineListe2 = MeineListe.Clone | ||
In Array kopieren | Keine | Dim MeinArray As Variant |
MeinArray = MeineListe.ToArray | ||
In einen Arbeitsblattbereich (Zeile) kopieren | Keine | Sheets(„Tabelle1“).Range(„A1“).Resize(1, MeineListe.Count).Value = MeineListe.ToArray |
In einen Arbeitsblattbereich (Spalte) kopieren | Keine | Sheets(„Tabelle1“).Range(„A3“).Resize(MeineListe.Count, 1).Value = WorksheetFunction.Transpose(MeineListe.ToArray) |
Erstellen | „System.Collections.ArrayList“ | Dim MeineListe As Object |
Set MeineListe = CreateObject(„System.Collections.ArrayList“) | ||
Deklarieren | N/A | Dim MeineListe As Object |
Suchen / Prüfen, ob Element existiert | Zu suchendes Element | MeineListe.Contains(„Element2“) |
Suche nach der Position eines Elements in der Array-Liste | 1. Zu suchendes Element. | Dim IndexNo As Long |
2. Position, ab der die Suche beginnen soll. | IndexNo = MeineListe.IndexOf(„Element3“, 0) | |
IndexNo = MeineListe.IndexOf(„Element5“, 3) | ||
Anzahl der Elemente ermitteln | Keine | MsgBox MeineListe.Count |
Element einfügen | 1. Index – Position, an der eingefügt werden soll. | MeineListe.Insert 0, „Element5“ |
2 Value – Objekt oder Wert, der eingefügt werden soll. | MeineListe.Insert 4, „Element7“ | |
Element lesen | Index – lange Ganzzahl | MsgBox MeineListe.Item(0) |
MsgBox MeineListe.Item(4) | ||
Zuletzt hinzugefügtes Element lesen | Index – lange Ganzzahl | MsgBox MeineListe.Item(list.Count – 1) |
Erstes hinzugefügtes Element lesen | Index – lange Ganzzahl | MsgBox MeineListe.Eintrag(0) |
Alle Elemente auslesen (For Each) | N/A | Dim Element As Variant |
For Each Element In MeineListe | ||
MsgBox Element | ||
Next Element | ||
Alle Elemente auslesen (For) | Index – lange Ganzzahl | Dim i As Long |
For i = 0 To MeineListe.Count – 1 | ||
MsgBox i | ||
Next i | ||
Alle Elemente entfernen | Keine | MeineListe.Clear |
Element an Position entfernen | Indexposition, an der sich das Element befindet | MeineListe.RemoveAt 5 |
Element nach Namen entfernen | Das zu entfernende Element aus der Array-Liste | MeineListe.Remove „Element3“ |
Einen Bereich von Elementen entfernen | 1. Index – Anfangsposition. | MeineListe.RemoveRange 4,3 |
2. Count – die Anzahl der zu entfernenden Elemente. | ||
In absteigender Reihenfolge sortieren | Keine | MeineListe.Reverse |
In aufsteigender Reihenfolge sortieren | Keine | MeineListe.Sort |