VBA kolekcija | Kaip sukurti kolekcijos objektą VBA?
„Excel VBA“ kolekcijos objektas
Be VBA kodavimo, be esamų daiktų kolekcijos vienoje grupėje, galime sukurti ir savo kolekcijų grupes. Savo daugelyje straipsnių mes kalbėjome apie objektų kintamuosius ir šioje pamokoje išsamiai apžvelgsime VBA kolekcijos objektą.
Jei peržiūrėjote mūsų ankstesnį straipsnį „VBA masyvai“, tai jums bus daug lengviau suprasti. Masyvai naudojami kintamiesiems grupuoti po vienu stogu. Panašiai kolekcija taip pat naudojama kintamųjų grupei saugoti.
Kolekcijos naudojamos daiktams laikyti. Jie yra daug lankstesni nei VBA matricos, o masyvuose yra nustatytas dydžio apribojimas, tačiau kolekcijose nėra jokio fiksuoto dydžio apribojimo bet kuriuo konkrečiu momentu ir netgi nereikia rankinio dydžio keisti.
VBA kolekcija yra labai panaši į „VBA žodyną“, tačiau žodynui reikalinga išorinė objekto nuoroda, kad ji būtų nustatyta po objekto nuorodos langu. Naudodami „VBA Dictionary“ turime nustatyti nuorodos tipą kaip „Microsoft Scripting Runtime“, tačiau kolekcijai nereikia jokių šių papildomų priedų.
Kaip sukurti kolekcijos objektą VBA?
Norėdami pradėti rinkti, pirmiausia turime paskelbti kintamąjį kaip „Kolekcija“.
Šį „VBA Collection Excel“ šabloną galite atsisiųsti čia - „VBA Collection Excel“ šablonasKodas:
Antrinis rinkinys_pavyzdys () Dim Col kaip kolekcijos pabaiga Sub
Kadangi kolekcija yra objekto kintamasis, turime nustatyti objekto nuorodą sukurdami naują egzempliorių.
Kodas:
Antrinis rinkinys_pavyzdys () Dim Col kaip rinkinio rinkinys Col = New Collection End Sub
Dabar naudodami kintamąjį galime pasiekti visus „Col“ rinkimo metodus.
Kodas:
Antrinis rinkinys_pavyzdys () Dim Col As As Collection Set Col = New Collection Col. End Sub
Prieš pradėdami naudoti šiuos metodus, mes turime deklaruoti kintamąjį kaip eilutę.
Kodas:
Antrinis rinkinys_pavyzdys () Dim Col kaip kolekcijos rinkinys Col = New Collection Dim ColResult as String End Sub
Dabar naudokite kintamąjį „Col“ ir pasirinkite „Add“ metodą.
Kodas:
Antrinis rinkinys_pavyzdys () Dim Col kaip kolekcijos rinkinys Col = New Collection Col. Add End Sub
Pagal metodą Pridėti turime tam tikrus parametrus. Tarkime, kad mes saugome mobiliųjų prekių ženklų pavadinimus su jų vidutine pardavimo kaina rinkoje.
Dalyje Prekė argumentas įveda mobiliojo telefono kainą.
Kodas:
Antrinis rinkinys_pavyzdys () Dim Col kaip kolekcijos rinkinys Col = New Collection Col. Add Item: = 15000, End Sub
Toliau skiltyje Raktas įveskite mobiliojo prekės ženklo pavadinimą.
Kodas:
Antrinis rinkinys_pavyzdys () Dim Col kaip kolekcijos rinkinys Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" End Sub
Dabar kintamajam „ColResult“ išsaugosime objekto kintamojo „Col“ rezultatą.
Kodas:
Antrinis rinkinys_pavyzdys () Dim Col kaip rinkinio rinkinys Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col (End Sub
Atidarę kintamojo „Col“ skliaustą, mes galime pamatyti argumentą kaip šio argumento indeksą. Mums reikia pateikti pagrindinę argumento vertę iš „Collection add“ metodo, ty mobiliojo prekės ženklo pavadinimo.
Kodas:
Antrinis rinkinys_pavyzdys () Dim Col kaip rinkinio rinkinys Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") End Sub
Dabar leiskite rodyti rezultatą VBA pranešimų laukelyje.
Kodas:
Antrinis rinkinys_pavyzdys () Dim Col kaip rinkinio rinkinys Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub
Gerai, mes baigėme, kai paleidžiame kodą, turėtume pamatyti mobiliojo prekės ženklo „Redmi“ kainą.
Geresnis pagrindinių ir elementų parametrų supratimas
Esu įsitikinęs, kad nėra lengva suprasti objekto „Kolekcija“ parametrus. Leiskite man paaiškinti jums paprastu pavyzdžiu.
Įsivaizduokite, kad turite vaisių meniu su jų pavadinimu ir vaisių kaina. Tarkime, kad „Apple“ vaisių kainos ieškote pagal vaisiaus pavadinimą.
Norėdami ieškoti vaisių kainos, turime nurodyti vaisiaus pavadinimą, ty kolekcijos VBA kalba . Vaisiaus pavadinimas yra pagrindinis , o vaisiaus kaina - „Daiktas“.
Tai panašu į VLOOKUP arba HLOOKUP funkcijos taikymą, remiantis paieškos verte mes atimsime reikalingus duomenis iš duomenų bazės. Čia paieškos vertė yra raktas, o rezultatas yra elementas.
Išplėstinis pavyzdys
Įsivaizduokite, kad esate parduotuvės vadovas vienoje iš mažmeninės prekybos parduotuvių ir esate atsakingas už klientų užklausų valdymą. Viena tokių klientų užklausų yra paklausimas apie produkto kainą.
Turite leisti klientui ieškoti išsamios informacijos apie produkto kainą. Panašiai turite parodyti pranešimą, jei nerandama duomenų. Žemiau pateikiamas kodo pavyzdys, kuris vartotojui bus pateiktas įvesties laukelyje ir jis turės įvesti ieškomo produkto pavadinimą. Jei produktas yra kolekcijoje, jis parodys minėto produkto kainą arba kitaip rodyti pranešimą kaip „Produkto, kurio ieškote, nėra“.
Kodas:
Antrinis rinkinys_pavyzdys2 () „Dim ItemsCol“ kaip kolekcijos „Dim ColResult“ kaip eilutės rinkinys „ItemsCol = New Collection ItemsCol.Add Key: =" Apple ", Item: = 150 ItemsCol.Add Key: =" Orange ", Item: = 75 ItemsCol.Add Key: = "Vandens melionas", elementas: = 45 ItemsCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (Prompt: = "Please Įveskite vaisiaus pavadinimą ") Jei ItemsCol (ColResult)" "Tada MsgBox" Vaisiaus kaina "& ColResult &" yra: "& ItemsCol (ColResult) Kita MsgBox" Ieškomo vaisiaus kaina neegzistuoja rinkinys „End If End Sub