VBA-Sammlung

Excel VBA-Erfassungsobjekt

Bei der VBA-Codierung können wir neben der vorhandenen Sammlung von Elementen unter einer Gruppe auch eigene Sammlungsgruppen erstellen. In unseren vielen Artikeln haben wir über Objektvariablen gesprochen und in diesem Tutorial werden wir das VBA-Auflistungsobjekt im Detail durchgehen.

Wenn Sie unseren vorherigen Artikel „VBA-Arrays“ durchgesehen haben, ist dies für Sie viel einfacher zu verstehen. Arrays werden verwendet, um Variablen unter einem Dach zu gruppieren. In ähnlicher Weise wird Collection auch zum Speichern einer Gruppe von Variablen verwendet.

Sammlungen werden zum Speichern von Objekten verwendet. Sie sind weitaus flexibler als die VBA-Arrays, während Arrays eine feste Größenbeschränkung haben, Sammlungen jedoch zu einem bestimmten Zeitpunkt keine feste Größenbeschränkung haben und sogar keine manuelle Größenänderung erfordern.

Die VBA-Sammlung ist dem „VBA-Wörterbuch“ sehr ähnlich, für das Wörterbuch muss jedoch eine externe Objektreferenz unter dem Objektreferenzfenster eingerichtet werden. Bei VBA Dictionary müssen wir den Referenztyp als "Microsoft Scripting Runtime" festlegen, für Collection sind jedoch keine dieser zusätzlichen Anpassungen erforderlich.

Wie erstelle ich ein Sammlungsobjekt in VBA?

Um mit der Sammlung zu beginnen, müssen wir zuerst die Variable als "Sammlung" deklarieren .

Sie können diese VBA Collection Excel-Vorlage hier herunterladen - VBA Collection Excel-Vorlage

Code:

 Sub Collection_Example () Dim Col As Collection End Sub 

Da die Auflistung eine Objektvariable ist, müssen wir die Objektreferenz durch Erstellen einer neuen Instanz festlegen.

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection End Sub 

Mit der Variablen können wir nun auf alle Methoden der Erfassungsvariablen „Col“ zugreifen.

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = Neue Sammlung Col. End Sub 

Bevor wir diese Methoden verwenden, müssen wir eine Variable als Zeichenfolge deklarieren.

Code:

 Sub Collection_Example () Dim Col als Sammlung Set Col = Neue Sammlung Dim ColResult As String End Sub 

Verwenden Sie nun die Variable "Col" und wählen Sie die Methode "Add".

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = Neue Sammlung Col.Add End Sub 

Unter der Add-Methode haben wir bestimmte Parameter. Nehmen wir an, wir speichern mobile Markennamen mit ihrem durchschnittlichen Verkaufspreis auf dem Markt.

Unter Artikel gibt das Argument den Preis des Mobiltelefons ein.

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = Neue Sammlung Col.Add Item: = 15000, End Sub 

Geben Sie als Nächstes unter Schlüsselargument den mobilen Markennamen ein.

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = Neue Sammlung Col.Add Item: = 15000, Key: = "Redmi" End Sub 

Für die Variable "ColResult" speichern wir nun das Ergebnis der Objektvariablen "Col".

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = Neue Sammlung Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col (End Sub 

Wenn Sie die Klammer der Variablen „Col“ öffnen können wir das Argument als siehe Index für dieses Argument wir liefern müssen Schlüssel Argument Wert aus der Sammlung add - Methode , dh Namen des Mobilmarke.

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = Neue Sammlung Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") End Sub 

Lassen Sie uns nun das Ergebnis im Meldungsfeld in VBA anzeigen.

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = Neue Sammlung Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub 

Ok, wir sind fertig, wenn wir den Code ausführen, sollten wir den Preis der Mobilfunkmarke "Redmi" sehen.

Besseres Verständnis der Schlüssel- und Elementparameter

Ich bin sicher, dass es nicht einfach ist, die Parameter des Collection-Objekts zu verstehen. Lassen Sie mich Ihnen anhand eines einfachen Beispiels erklären.

Stellen Sie sich vor, Sie haben ein Obstmenü mit Namen und Preis der Früchte. Angenommen, Sie suchen den Obstpreis „Apfel“ nach dem Namen der Frucht.

Um den Preis der Frucht zu ermitteln, müssen wir den Namen der Frucht angeben, dh in der VBA-Sprache der Sammlung. Der Name der Frucht ist der Schlüssel und der Preis der Frucht ist „Gegenstand“.

Es ist wie beim Anwenden der VLOOKUP- oder HLOOKUP-Funktion, basierend auf dem Suchwert werden die erforderlichen Daten aus der Datenbank abgerufen. Hier ist der Suchwert Key und das Ergebnis ist Item.

Erweitertes Beispiel

Stellen Sie sich vor, Sie sind Filialleiter in einem der Einzelhandelsgeschäfte und für die Verwaltung der Kundenanfragen verantwortlich. Eine solche Kundenanfrage ist eine Anfrage zum Produktpreis.

Sie müssen dem Kunden erlauben, den Preis des Produkts mit vollständigen Informationen zu suchen. Ebenso müssen Sie die Nachricht anzeigen, falls keine Daten gefunden wurden. Unten finden Sie den Beispielcode, der das Eingabefeld vor dem Benutzer anzeigt und den Namen des gesuchten Produkts eingeben muss. Wenn sich das Produkt in der Sammlung befindet, wird der Preis des genannten Produkts angezeigt, oder es wird angezeigt Zeigen Sie die Meldung als "Das gesuchte Produkt existiert nicht" an.

Code:

Sub Collection_Example2 () Dim ItemsCol As Collection Dim ColResult As String Set ItemsCol = Neue Sammlung ItemsCol.Add Key: = "Apple", Item: = 150 ItemsCol.Add Key: = "Orange", Item: = 75 ItemsCol.Add Key: = "Wassermelone", Item: = 45 ItemsCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (Prompt: = "Please Geben Sie den Fruchtnamen ein ") Wenn ItemsCol (ColResult)" "Dann ist MsgBox" Der Preis der Frucht "& ColResult &": "& ItemsCol (ColResult) Sonst gibt es MsgBox" Preis der Frucht, nach der Sie suchen, nicht die Sammlung "End If End Sub