VBA kolekcija - Kako stvoriti objekt kolekcije u VBA?

Objekt zbirke Excel VBA

U VBA kodiranju, osim postojeće kolekcije predmeta iz jedne skupine, možemo stvoriti i naše grupe kolekcija. U našim brojnim člancima govorili smo o varijablama objekta, a u ovom uputstvu detaljno ćemo proći kroz objekt zbirke VBA.

Ako ste prošli kroz naš prethodni članak "VBA nizovi", ovo će vam biti puno lakše razumjeti. Nizovi se koriste za grupiranje varijabli pod jednim krovom; slično, Zbirka se također koristi za pohranu skupine varijabli.

Zbirke se koriste za spremanje predmeta. Oni su daleko fleksibilniji od VBA nizova, dok nizovi imaju fiksna ograničenja veličine, ali čitači nemaju nijedno ograničenje veličine u bilo kojem trenutku i čak ne zahtijevaju ručno mijenjanje veličine.

VBA Zbirka vrlo je slična "VBA Rječniku", ali rječnik zahtijeva vanjsku referencu na objekt da bi se postavio ispod prozora reference objekta. S VBA rječnikom moramo postaviti referentnu vrstu kao "Microsoft Scripting Runtime", ali Zbirka ne zahtijeva dodatnu opremu.

Kako stvoriti objekt kolekcije u VBA?

Da bismo prvo započeli sa sakupljanjem, varijablu moramo proglasiti kao "Zbirka".

Kodirati:

Podzbirka_Primjer () Zatamni Col kao zbirka Kraj Sub

Budući da je zbirka objektna varijabla, moramo postaviti referencu na objekt stvaranjem nove instance.

Kodirati:

Sub Collection_Example () Dim Col As Set kolekcije Col = Nova kolekcija Kraj Sub

Sada s varijablom možemo pristupiti svim metodama prikupljanja varijable "Col."

Kodirati:

Podzbirka_Primjer () Zatamni Col kao zbirka Set Col = Nova kolekcija Col. Kraj Sub

Prije upotrebe ovih metoda, trebamo deklarirati varijablu kao niz.

Kodirati:

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

Sada upotrijebite varijablu "Col" za odabir metode "Add".

Kodirati:

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

Pod metodom Add imamo određene parametre. Pretpostavimo da na tržištu pohranjujemo nazive mobilnih marki s prosječnom prodajnom cijenom.

U stavci Argument unosi cijenu mobitela.

Kodirati:

Podzbirka_Primjer () Zatamni Col kao zbirka Set Col = Nova kolekcija Col.Dodaj stavku: = 15000, Kraj Sub

Dalje, pod Ključni argument unesite naziv robne marke.

Kodirati:

Podzbirka_Primjer () Dim Col Kao zbirka Set Col = Nova kolekcija Col.Add Item: = 15000, Key: = "Redmi" End Sub

Za varijablu "ColResult" pohranit ćemo rezultat varijable objekta "Col".

Kodirati:

Podzbirka_Primjer () Zatamni Col kao skup kolekcije Col = Nova kolekcija Col.Dodaj stavku: = 15000, Ključ: = "Redmi" ColResult = Col (Kraj Sub

Kada otvorite zagradu varijable "Col", argument možemo vidjeti kao Index. Za ovaj argument moramo navesti kritičnu vrijednost argumenta iz metode Zbirka dodavanja, tj. Naziv mobilne marke.

Kodirati:

Podzbirka_Primjer () Zatamni Col kao skup kolekcije Col = Nova zbirka Col.Dodaj stavku: = 15000, ključ: = "Redmi" ColResult = Col ("Redmi") Završi Sub

Neka sad rezultat prikaže u okviru za poruke u VBA.

Kodirati:

Podzbirka_Primjer () Zatamni Col kao zbirka Set Col = Nova kolekcija Col.Dodaj stavku: = 15000, Ključ: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult Kraj Sub

Ok, gotovi smo kad pokrenemo kod. Trebali bismo vidjeti cijenu mobilne marke "Redmi".

Bolje razumijevanje parametara ključa i predmeta

Siguran sam da nije lako razumjeti parametre objekta Collection. Objasnit ću vam jednostavan primjer.

Zamislite da imate jelovnik s voćem s imenom i cijenom voća. Pretpostavimo da cijenu voća "Jabuka" tražite po imenu voća.

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", stavka: = 45 predmetaCol.Dodaj ključ: = "kaša Millan", artikl: = 85 predmetaCol.Dodaj ključ: = "mango", artikl: = 65 ColResult = Application.InputBox (upit: = "Molimo Unesite naziv voća ") Ako ItemsCol (ColResult)" "Tada je MsgBox" Cijena voća "& ColResult &": "& ItemsCol (ColResult) El MsgBox" Cijena voća koje tražite ne postoji u zbirka "End If End Sub

Zanimljivi članci...