Zbirka VBA - Kako ustvariti predmet zbirke v VBA?

Predmet zbirke Excel VBA

Pri kodiranju VBA lahko poleg obstoječe zbirke predmetov pod eno skupino ustvarimo naše skupine zbirk. V številnih člankih smo govorili o spremenljivkah objektov, v tej vadnici pa bomo podrobno preučili objekt zbiranja VBA.

Če ste prebrali naš prejšnji članek »VBA Arrays«, boste to veliko lažje razumeli. Nizi se uporabljajo za združevanje spremenljivk pod eno streho; podobno se Zbirka uporablja tudi za shranjevanje skupine spremenljivk.

Zbirke se uporabljajo za shranjevanje predmetov. So veliko bolj prilagodljivi kot nizi VBA, medtem ko imajo nizi fiksne omejitve velikosti, vendar bralci v nobenem trenutku nimajo nobene fiksne omejitve velikosti in celo ne zahtevajo ročnega spreminjanja velikosti.

Zbirka VBA je zelo podobna »slovarju VBA«, vendar slovar zahteva, da se zunanja referenca predmeta nastavi pod oknom sklica predmeta. Pri slovarju VBA moramo referenčno vrsto nastaviti kot »Microsoft Scripting Runtime«, vendar zbirka ne zahteva nobene dodatne opreme.

Kako ustvariti predmet zbirke v VBA?

Če želite najprej začeti z zbiranjem, moramo spremenljivko razglasiti kot »Zbirka«.

Koda:

Sub Collection_Example () Dim Col As Collection End Sub

Ker je zbirka spremenljivka predmeta, moramo referenco na objekt nastaviti z ustvarjanjem novega primerka.

Koda:

Sub Collection_Example () Dim Col As Collection Set Col = Nova zbirka Konec Sub

Zdaj s spremenljivko lahko dostopamo do vseh načinov zbiranja spremenljivke "Col."

Koda:

Sub Collection_Example () Dim Col As Set Set Col = Nova zbirka Col. End Sub

Pred uporabo teh metod moramo spremenljivko razglasiti kot niz.

Koda:

Sub Collection_Example () Dim Col As Set Set Col = Nova zbirka Dim ColResult As String End Sub

Zdaj s spremenljivko "Col" izberite način "Add".

Koda:

Sub Collection_Example () Dim Col As Set Set Col = Nova zbirka Col.Add End Sub

Pri metodi Add imamo posebne parametre. Predpostavimo, da na trgu shranjujemo imena blagovnih znamk z njihovo povprečno prodajno ceno.

V postavki Argument vnese ceno mobilnega telefona.

Koda:

Sub Collection_Example () Dim Col As Set Collection Col = Nova zbirka Col.Dodaj element: = 15000, End Sub

Nato pod Key argument vnesite ime blagovne znamke.

Koda:

Podzbirka_Primer () Dim Col kot zbirka Set Col = Nova zbirka Col.Dodaj element: = 15000, ključ: = "Redmi" Konec Sub

Za spremenljivko "ColResult" bomo shranili rezultat spremenljivke predmeta "Col".

Koda:

Podzbirka_Primer () Dim Col kot zbirka Set Col = Nova zbirka Col.Dodaj element: = 15000, ključ: = "Redmi" ColResult = Col (End Sub

Ko odprete oklepaje spremenljivke "Col", lahko argument vidimo kot indeks. Za ta argument moramo navesti kritično vrednost argumenta iz metode Zbiranja, tj. Ime blagovne znamke.

Koda:

Podzbirka_Primer () Dim Col kot zbirka Col = Nova zbirka Col.Dodaj element: = 15000, ključ: = "Redmi" ColResult = Col ("Redmi") Konec Sub

Zdaj pustite rezultat v oknu za sporočila v VBA.

Koda:

Podzbirka_Primer () Dim Col kot zbirka Set Col = Nova zbirka Col.Dodaj element: = 15000, ključ: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub

Ok, ko zaženemo kodo, smo končali. Videti bi morali ceno mobilne znamke, "Redmi."

Boljše razumevanje parametrov ključa in postavke

Prepričan sem, da ni enostavno razumeti parametrov predmeta Zbirka. Naj vam razložim preprost primer.

Predstavljajte si, da imate jedilni list s sadjem z imenom in ceno sadja. Predpostavimo, da iščete ceno sadja "Apple" po imenu sadja.

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 = New Collection ItemsCol.Add Key: = "Apple", Item: = 150 ItemsCol.Add Key: = "Orange", Item: = 75 ItemsCol.Add Key: = "Lubenica", postavka: = 45 izdelkovCol.Add Key: = "Mush Millan", element: = 85 ItemsCol.Add Key: = "Mango", element: = 65 ColResult = Application.InputBox (poziv: = "Prosim: Vnesite ime sadja ") Če ItemsCol (ColResult)" "Potem MsgBox" Cena sadja "& ColResult &" je: "& ItemsCol (ColResult) El MsgBox" Cena sadja, ki ga iščete, ne obstaja v zbirka "End If End Sub

Zanimive Članki...