Sbírka VBA - Jak vytvořit sbírkový objekt ve VBA?

Objekt kolekce VBA aplikace Excel

V kódování VBA můžeme kromě existující kolekce položek v jedné skupině vytvořit naše skupiny kolekcí. V našich mnoha článcích jsme hovořili o proměnných objektů a v tomto tutoriálu podrobně provedeme objekt kolekce VBA.

Pokud jste prošli naším předchozím článkem „Pole VBA“, bude pro vás mnohem snazší to pochopit. Pole se používají ke seskupení proměnných pod jednou střechou; podobně se Collection používá také k ukládání skupiny proměnných.

Kolekce se používají k ukládání objektů. Jsou mnohem flexibilnější než pole VBA, zatímco pole mají limity pevné velikosti, ale čtenáři nemají žádný limit pevné velikosti v daném okamžiku a dokonce nevyžadují ruční změnu velikosti.

Kolekce VBA je velmi podobná „slovníku VBA“, ale slovník vyžaduje, aby byl v okně odkazu na objekt nastaven externí odkaz na objekt. U VBA Dictionary musíme nastavit typ odkazu jako „Microsoft Scripting Runtime“, ale Collection nevyžaduje žádné další úpravy.

Jak vytvořit sbírkový objekt ve VBA?

Chcete-li začít s kolekcí jako první, musíme deklarovat proměnnou jako „Kolekce“.

Kód:

Sub Collection_Example () Dim Col As Collection End Sub

Protože kolekce je proměnná objektu, musíme nastavit odkaz na objekt vytvořením nové instance.

Kód:

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

Nyní s touto proměnnou máme přístup ke všem metodám shromažďování proměnné „Col.“

Kód:

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

Než použijeme tyto metody, musíme deklarovat proměnnou jako řetězec.

Kód:

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

Nyní pomocí proměnné „Col“ zvolte metodu „Add“.

Kód:

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

V rámci metody Add máme konkrétní parametry. Předpokládejme, že ukládáme názvy mobilních značek s jejich průměrnou prodejní cenou na trhu.

Pod položkou Položka argument zadává cenu mobilu.

Kód:

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

Dále v části Klíčový argument zadejte název mobilní značky.

Kód:

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

U proměnné „ColResult“ uložíme výsledek proměnné objektu „Col“.

Kód:

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

Když otevřete závorku proměnné „Col“, můžeme argument vidět jako index. Pro tento argument musíme zadat hodnotu kritického argumentu z metody Collection add, tj. Název mobilní značky.

Kód:

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

Nyní nechte zobrazit výsledek v okně se zprávou ve VBA.

Kód:

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

Dobře, jsme hotovi, když spustíme kód. Měli bychom vidět cenu mobilní značky „Redmi“.

Lepší porozumění klíčovým a položkovým parametrům

Jsem si jistý, že není snadné pochopit parametry objektu Collection. Vysvětlím vám jednoduchý příklad.

Představte si, že máte nabídku ovoce s názvem a cenou ovoce. Předpokládejme, že hledáte cenu ovoce „Apple“ podle názvu ovoce.

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 = Nová kolekce 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: = "Prosím Zadejte název ovoce ") Pokud ItemsCol (ColResult)" "Pak MsgBox" Cena ovoce "& ColResult &" je: "& ItemsCol (ColResult) Jinak MsgBox" Cena ovoce, které hledáte, neexistuje kolekce „End If End Sub

Zajímavé články...