VBA-collectie - Hoe een verzamelingsobject in VBA te maken?

Excel VBA-verzamelingsobject

Bij VBA-codering kunnen we, naast de bestaande verzameling items onder één groep, onze verzamelingsgroepen maken. In onze vele artikelen hebben we het gehad over objectvariabelen en in deze zelfstudie zullen we het VBA-verzamelingsobject in detail bespreken.

Als u ons vorige artikel "VBA-arrays" hebt doorgenomen, zal dit voor u veel gemakkelijker te begrijpen zijn. Arrays worden gebruikt om variabelen onder één dak te groeperen; Op dezelfde manier wordt Collection ook gebruikt om een ​​groep variabelen op te slaan.

Collecties worden gebruikt om objecten op te slaan. Ze zijn veel flexibeler dan de VBA-arrays, terwijl arrays vaste groottelimieten hebben, maar lezers hebben op geen enkel moment een vaste groottelimiet en hoeven zelfs niet handmatig te worden aangepast.

VBA Collection lijkt erg op het "VBA Dictionary", maar het woordenboek vereist externe objectreferentie om het in te stellen onder het objectreferentievenster. Met VBA Dictionary moeten we het referentietype instellen als "Microsoft Scripting Runtime", maar Collection vereist geen extra aanpassingen.

Hoe een verzamelingsobject in VBA te maken?

Om eerst met verzamelen te beginnen, moeten we de variabele declareren als 'Verzameling'.

Code:

Sub Collection_Example () Dim Col As Collection End Sub

Omdat de verzameling een objectvariabele is, moeten we de objectreferentie instellen door een nieuwe instantie te maken.

Code:

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

Met de variabele hebben we nu toegang tot alle methoden van de verzamelingsvariabele "Col."

Code:

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

Voordat we van deze methoden gebruik kunnen maken, moeten we een variabele als een string declareren.

Code:

Sub Collection_Example () Dim Col As Collection Set Col = Nieuwe collectie Dim ColResult As String End Sub

Gebruik nu de variabele "Col" om de "Add" -methode te kiezen.

Code:

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

Onder de Add-methode hebben we specifieke parameters. Laten we aannemen dat we mobiele merknamen opslaan met hun gemiddelde verkoopprijs op de markt.

Onder Item voert het argument de prijs van de mobiel in.

Code:

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

Voer vervolgens onder Sleutelargument de mobiele merknaam in.

Code:

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

Voor de variabele "ColResult" zullen we het resultaat van de "Col" -objectvariabele opslaan.

Code:

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

Als je het haakje van de variabele "Col" opent, kunnen we het argument zien als Index. Voor dit argument moeten we de kritische argumentwaarde van de Collection add-methode opgeven, dwz de naam van het mobiele merk.

Code:

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

Laat nu het resultaat zien in het berichtvenster in VBA.

Code:

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

Oké, we zijn klaar als we de code uitvoeren. We zouden de prijs van het mobiele merk 'Redmi' moeten zien.

Beter begrip van sleutel- en itemparameters

Ik weet zeker dat het niet gemakkelijk is om de parameters van het Collection-object te begrijpen. Ik zal u een eenvoudig voorbeeld uitleggen.

Stel je voor dat je een fruitmenu hebt met hun naam en prijs van het fruit. Stel dat u de fruitprijs van "Appel" zoekt op de naam van het fruit.

To search the price of the fruit, we need to mention the name of the fruit, i.e., in collection VBA language Name of the Fruit is Key, and the price of the fruit is “Item.”

It is like applying the VLOOKUP or HLOOKUP function, based on the lookup value, and we will fetch the required data from the database. Here lookup value is Key, and the result is Item.

Advanced Example

Imagine you are a store manager in one of the retail stores, and you are responsible for managing the customer queries. One such customer query is an inquiry about the product price.

It would help if you allowed the customer to search the price of the product with complete information. Similarly, you need to show the message in case of no data found. Below is the example code which will present the input box in front of the user. They require to enter the name of the product they are looking for. If the product is there in the collection, it will show the price of the mentioned product, or else it will show the message as “The Product you are searching for doesn’t exist.”

Code:

Sub Collection_Example2 () Dim ItemsCol As Collection Dim ColResult As String Set ItemsCol = Nieuwe collectie ItemsCol.Add Key: = "Apple", Item: = 150 ItemsCol.Add Key: = "Orange", Item: = 75 ItemsCol.Add Key: = "Water Melon", Item: = 45 ItemsCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (prompt: = "Please Voer de fruitnaam in ") If ItemsCol (ColResult)" "Then MsgBox" The Price of the Fruit "& ColResult &" is: "& ItemsCol (ColResult) Else MsgBox" De prijs van het fruit waarnaar u op zoek bent, bestaat niet in de collectie "End If End Sub

Interessante artikelen...