So verwenden Sie VBA-Sammlungen in Excel

Anonim


Eine Collection ist ein Datentyp, der Speicherobjekte wie Arrays enthält (aber anders). Beim Schreiben grundlegender VBA-Codes müssen Sie Arbeitsmappen, Arbeitsblätter, Bereiche usw. verwendet haben. Sie alle sind Sammlungen. In diesem Artikel werden wir mehr über VBA-Sammlungen erfahren.
Was ist eine Sammlung in VBA?
Eine Sammlung ist ein Datentyp, der ähnliche Objekttypen wie Arrays speichert.

Im Gegensatz zu Arrays kann seine Größe jedoch je nach Anforderung dynamisch vergrößert oder verkleinert werden.

Sie können Elemente zu Sammlungen hinzufügen, suchen, abrufen und löschen.

Im Gegensatz zu Arrays können Sie die Werte von Elementen in Sammlungen nicht ändern. Wenn Sie möchten, verwenden Sie Arrays als Element in der Sammlung.

Einer Sammlung sind 4 Eigenschaften oder Methoden zugeordnet.

 Collection.Add Collection.Item Collection.Count Collection.Remove 

Durch diesen Artikel wird die Verwendung dieser Eigenschaften untersucht.
Wie erstelle ich eine Sammlung in VBA?
Eine Sammlung ist ein Objekt, daher muss sie deklariert und initialisiert werden. Wie bei jedem anderen Objekt in VBA gibt es zwei Methoden zum Erstellen einer Sammlung in VBA.
1. Sofortige Erstellung

Dim-Artikel als neue Kollektion

Bei der obigen Methode wird das Objekt sofort erstellt. Sie können diese Sammlung sofort für Ihre Anforderungen verwenden.

2. Verspätete Erstellung

 Gegenstände als Sammlung abdunkeln Gegenstände einstellen = Neue Sammlung 

Bei dieser Methode erstellen wir zuerst eine Referenz der Sammlung und initialisieren bei Bedarf mit einem Sammlungsobjekt. Mit dieser Methode können Sie die Sammlung basierend auf einigen Kriterien erstellen.

Hinzufügen von Elementen zu einer Sammlung (Collection.Add)
Wir verwenden die Add-Methode, um einer Sammlung neue Elemente hinzuzufügen.

items.Add "Äpfel"

Der obige Code fügt der Sammlung die Zeichenfolge "Äpfel" hinzu.

items.Add 1.4

Der obige Code fügt am Ende der Sammlung double 1.4 hinzu.

Wir können auch Schlüssel für diese Elemente definieren. Diese Schlüssel können verwendet werden, um auf die Elemente in der Sammlung zuzugreifen.

Einfügen von Elementen in die Sammlung vor oder nach einem vorhandenen Element

Die Add-Methode fügt neue Elemente am Ende der Auflistung hinzu.

Die Methode add hat vier Parameter.

Hinzufügen(Element,[Schlüssel],[Vorher],[Nachher])

Das erste Argument ist notwendig. Es ist das Objekt oder das Sie der Sammlung hinzufügen möchten. Rest-Argumente sind optional. Wir werden die Verwendung dieser Argumente in diesem Abschnitt sehen.

Wenn wir ein Element vor oder nach einem bestimmten Index/Schlüssel hinzufügen möchten, verwenden wir die Parameter Before und After der Add-Methode.

items.Add True, "b", "cnst" 'Oder items.Add True, Before:="cnst"

Beide Zeilen fügen einen booleschen Wert vor dem Schlüssel "cnst" in die VBA-Sammlungselemente ein.

Um ein Element nach einem bestimmten Index/Element/Schlüssel einzufügen, verwenden wir den After-Parameter der Add-Methode.

'Einfügen von "Mango" mit dem Schlüssel "m" nach dem Schlüssel "cnst" items.Add "Mango", Key:="m", after:="b"

Die obige Zeile fügt "Mango" mit der Taste "m" nach der Taste "b" ein.

Notiz: Die Schlüssel der Elemente sollten eindeutig sein. Ein bereits in der Sammlung vorhandener Schlüssel wird nicht akzeptiert. VBA gibt einen Fehler zurück, dass "der Schlüssel bereits mit einem Element dieser Sammlung verknüpft ist".

Wir können dies zu unserem Vorteil nutzen, um eine einzigartige Liste aus der Sammlung zu erhalten.
Auf Sammlungsobjekte zugreifen (Collection.Item)

Es gibt zwei Methoden, um auf die Elemente einer Sammlung zuzugreifen.

  1. CollectionName ("index/key")
  2. CollectionName.Item("index/key")

Um beispielsweise auf ein Mitglied in einer Sammlung zuzugreifen Produkte Bei Index 1 und Schlüssel "apl" kann ich jeden der folgenden VBA-Codes verwenden.

Debug.Print items.Item(1) -- Debug.Print items(1) -- Debug.Print items.Item("apl") -- Debug.Print items("apl")


Wie erhalte ich die Anzahl der Elemente in einer Sammlung? (Sammlung.Anzahl)
Um die Gesamtzahl der Objekte oder Elemente in einer Sammlung zu erhalten, verwenden wir die .Count-Funktion der Sammlung. Die Methode .Count gibt die Gesamtzahl der Elemente in der Sammlung zurück.

 Artikel.Anzahl

Die obige Zeile gibt die Anzahl der Objekte an, die die Sammlung enthält.

Wie greife ich auf alle Elemente einer Sammlung zu?

Die einzige Möglichkeit, auf alle Elemente der Sammlung in VBA zuzugreifen, sind Schleifen. Wir durchlaufen jedes Sammlungselement, um darauf zuzugreifen. Dafür verwenden wir for-Schleife. Die for-each-Schleife gilt als schnellste und sauberste Methode, um auf Sammlungsobjekte zuzugreifen.
Durchlaufen einer Sammlung in VBA

Es gibt verschiedene Möglichkeiten, die Sammlung in VBA zu durchlaufen. Wir verwenden am elegantesten für jede Schleife, um durch die Sammlung zu iterieren.

Um jedes Element einer Sammlung zu durchlaufen, verwenden Sie einfach diese VBA-Codezeile.

Für jeden Artikel In Artikel Debug.Print Artikel Nächste Artikel


Entfernen von Elementen aus einer Sammlung (Collection.Remove)

Um ein Element aus einer vba-Sammlung zu entfernen, können wir die Remove-Methode verwenden. Die Methode remove nimmt ein Argument entgegen. Dies kann der Index oder der Schlüssel des Elements sein (falls verfügbar).

items.Remove (1) 'mit dem Index -- items.Remove 1 -- items.Remove ("apl") 'mit dem Schlüssel -- items.Remove "apl"

Sammlung in VBA löschen

Nun, Sie können eine Sammlung in vba nicht löschen. Sie können jedoch alle Elemente dieser Sammlung entfernen, indem Sie sie erneut als neue Sammlung festlegen.

Set-Items = Neue Kollektion

Diese Codezeile erstellt eine neue Sammlung für die Adresse von Elementen. Daher wird unsere Sammlung geleert.

Array vs. Sammlung in VBA

    Array

  1. Die Array-Größe ist vordefiniert. Die Größe des Arrays kann nicht normal geändert werden.
  2. Arrays können nur den gleichen Datentyp enthalten und der Typ muss zuerst deklariert werden.
  3. Die Indizierung im Array beginnt bei 0
  4. Array-Mitglieder haben keinen zugeordneten Schlüssel.
  5. Arrays sind veränderbar. Sie können die Werte seiner Mitglieder ändern.

    Sammlung

  1. Die Größe der Sammlung ändert sich, wenn Elemente hinzugefügt oder entfernt werden.
  2. Eine Sammlung kann eine beliebige Anzahl von Datentypen enthalten. Wie Sie in den obigen Beispielen gesehen haben.
  3. Die Indizierung in der VBA-Sammlung beginnt bei 1.
  4. Sammlungsmitgliedern können Schlüssel zugeordnet sein.
  5. Sammlungen sind unveränderlich. Sie können die Werte seines Mitglieds nicht direkt ändern.

Also ja, Leute, das sind die Grundlagen von Sammlungen. Es gibt viele Vorteile und Einsatzmöglichkeiten der VBA-Sammlung in Office-Tools. Wir werden sie gemeinsam erkunden. Wenn Sie bis dahin Fragen zur Sammlung oder zu Excel / VBA haben, schreiben Sie sie unten in den Kommentarbereich.