VBA kollektsioon | Kuidas luua VBA-s kogumisobjekti?
Exceli VBA koguobjekt
VBA kodeerimisel, välja arvatud olemasolev ühe rühma üksuste kogu, saame luua ka oma kollektsioonirühmad. Oma paljudes artiklites oleme rääkinud objekti muutujatest ja selles õpetuses käsitleme üksikasjalikult VBA kogumisobjekti.
Kui olete meie eelmise artikli “VBA massiivid” läbi vaadanud, on sellest teil palju lihtsam aru saada. Massiive kasutatakse muutujate rühmitamiseks ühe katuse alla, samamoodi kasutatakse kollektsiooni ka muutujate rühma salvestamiseks.
Kogusid kasutatakse objektide hoidmiseks. Need on palju paindlikumad kui VBA massiivid, samas kui massiividel on fikseeritud suuruse piirang, kuid kollektsioonidel pole mingil ajahetkel fikseeritud suuruse piirangut ja need ei vaja isegi käsitsi suuruse muutmist.
VBA kollektsioon on väga sarnane “VBA sõnaraamatuga”, kuid sõnastik nõuab välise objekti viite seadistamist objekti viite akna alla. VBA sõnaraamatuga peame määrama viite tüübiks "Microsoft Scripting Runtime", kuid kollektsioon ei nõua ühtegi neist lisavarustustest.
Kuidas luua VBA-s kogumisobjekti?
Kogumisega alustamiseks peame deklareerima muutuja nimega „Kogumine“.
Selle VBA Collection Exceli malli saate alla laadida siit - VBA Collection Exceli mallKood:
Alamkogu_näide () Dim Col kui kogu End Sub
Kuna kogu on objektimuutuja, peame uue viite loomisega määrama objektiviite.
Kood:
Alamkogu_näide () Dim Col kui kollektsiooni komplekt Col = Uus kogu End Sub
Nüüd saame muutujaga juurde pääseda kõikidele muutuja “Col” meetoditele.
Kood:
Alamkogu_näide () Dim Col kui kollektsiooni komplekt Col = New Collection Col. End Sub
Enne nende meetodite kasutamist peame muutuja deklareerima stringina.
Kood:
Alamkogu_näide () Dim Col kui kogumikomplekt Col = New Collection Dim ColResult as String End Sub
Nüüd kasutage muutujat “Col” ja valige “Add” meetod.
Kood:
Alamkogu_näide () Dim Col As Collection Set Col = Uus kogu Col. Add End Sub
Add-meetodi all on meil teatud parameetrid. Oletame, et salvestame mobiilseid kaubamärke koos nende keskmise müügihinnaga turul.
Punkti Item sisestab argument mobiiltelefoni hinna.
Kood:
Alamkogu_näide () Dim Col As Collection Set Col = New Collection Col. Add Item: = 15000, End Sub
Järgmisena sisestage klahvi Argument all mobiilibrändi nimi.
Kood:
Alakogu_näide () Dim Col kui kollektsiooni komplekt Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" End Sub
Nüüd muutuja “ColResult” jaoks salvestame objekti muutuja “Col” tulemuse.
Kood:
Alakogu_näide () Dim Col kui kollektsiooni komplekt Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col (End Sub
Muutuja "Col" sulgude avamisel näeme argumendi selle argumendi indeksina . Peame sisestama võtmeargumendi väärtuse kogumise lisamise meetodist, st mobiilibrändi nimest.
Kood:
Alakogu_näide () Dim Col kui kollektsiooni komplekt Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") End Sub
Nüüd laske tulemus kuvada VBA teatekastis.
Kood:
Alakogu_näide () Dim Col kui kollektsiooni komplekt Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub
Ok, koodi lõpetamisel oleme valmis, peaksime nägema mobiilibrändi “Redmi” hinda.
Parem arusaamine võtme- ja üksuseparameetritest
Olen kindel, et kogu Collection parameetritest pole lihtne aru saada. Lubage mul selgitada teile lihtsa näite abil.
Kujutage ette, et teil on puuviljade menüü koos nende nime ja puuviljade hinnaga. Oletame, et otsite puuvilja “Apple” hinda puuvilja nime järgi.
Puuvilja hinna otsimiseks peame mainima puuvilja nime, st kollektsiooni VBA keeles Puuvilja nimi on võti ja puuvilja hind on “Üksus”.
See on nagu funktsiooni VLOOKUP või HLOOKUP rakendamine, otsingu väärtuse põhjal toome vajalikud andmed andmebaasist. Siin on otsingu väärtus Key ja tulemuseks on Item.
Täpsem näide
Kujutage ette, et olete ühes jaekaupluses kaupluse juhataja ja vastutate kliendipäringute haldamise eest. Üks selline kliendipäring on päring toote hinna kohta.
Peate lubama kliendil toote hinda otsida täieliku teabega. Samamoodi peate kuvama sõnumi, kui andmeid ei leita. Allpool on näidiskood, mis kuvab kasutaja ees sisendkasti ja kes peavad sisestama otsitava toote nime. Kui toode on kollektsioonis, näitab see nimetatud toote hinda või muul viisil näidata sõnumit kui „Otsitavat toodet pole olemas“.
Kood:
Alamkogu_näide2 () Dim ItemsCol kollektsioonina Dim ColResult stringina Komplekt ItemsCol = Uus kogu ItemsCol.Add võti: = "Apple", Item: = 150 ItemsCol.Add Key: = "Orange", Item: = 75 ItemsCol.Add Key: = "Vesimelon", punkt: = 45 ItemsCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (Prompt: = "Palun Sisestage puuvilja nimi ") Kui ItemsCol (ColResult)" "Siis MsgBox" Puuvilja hind "& ColResult &" on: "& ItemsCol (ColResult) Muu MsgBox" Otsitava puuvilja hinda pole kogu "Lõpeta, kui lõpeb alam