VBA kolekcija Kā izveidot kolekcijas objektu VBA?
Excel VBA kolekcijas objekts
VBA kodēšanā neatkarīgi no esošās priekšmetu kolekcijas vienā grupā mēs varam izveidot arī savas kolekciju grupas. Savos daudzajos rakstos mēs esam runājuši par objektu mainīgajiem, un šajā apmācībā mēs detalizēti izskatīsim VBA kolekcijas objektu.
Ja esat izlasījis mūsu iepriekšējo rakstu “VBA masīvi”, to jums būs daudz vieglāk saprast. Masīvus izmanto, lai grupētu mainīgos zem viena jumta, tāpat kolekciju izmanto arī mainīgo grupas glabāšanai.
Kolekcijas tiek izmantotas objektu glabāšanai. Tie ir daudz elastīgāki nekā VBA bloki, turpretim masīviem ir noteikts izmēru ierobežojums, taču kolekcijām nav noteikta izmēra ierobežojuma jebkurā noteiktā laika posmā, un pat nav nepieciešama manuāla izmēru maiņa.
VBA kolekcija ir ļoti līdzīga “VBA vārdnīcai”, taču vārdnīcai ir nepieciešama ārēja objekta atsauce, lai to iestatītu zem objekta atsauces loga. Izmantojot VBA vārdnīcu, mums ir jāiestata atsauces tips kā “Microsoft Scripting Runtime”, taču kolekcijai nav nepieciešama neviena no šīm papildu piederumiem.
Kā izveidot kolekcijas objektu VBA?
Lai sāktu kolekciju, mums mainīgais maināms kā “Kolekcija”.
Šo VBA kolekcijas Excel veidni varat lejupielādēt šeit - VBA kolekcijas Excel veidneKods:
Apakškolekcijas_piemērs () Dim Col kā kolekcijas beigu apakšgrupa
Tā kā kolekcija ir objekta mainīgais, mums jāiestata objekta atsauce, izveidojot jaunu instanci.
Kods:
Apkopojuma_piemērs () Dim Col kā kolekcijas kopa Col = Jauna kolekcijas beigu apakšgrupa
Tagad ar mainīgo mēs varam piekļūt visām kolekcijas mainīgā “Col” metodēm.
Kods:
Apakškolekcijas_piemērs () Dim Col kā kolekcijas kopa Col = New Collection Col. End Sub
Pirms šo metožu izmantošanas mums jādeklarē mainīgais kā virkne.
Kods:
Apkopojuma_piemērs () Dim Col kā kolekcijas kopa Col = Jauna kolekcija Dim ColResult kā virknes beigu apakšgrupa
Tagad izmantojiet mainīgo “Col”, izvēlieties “Add” metodi.
Kods:
Apakškolekcijas_piemērs () Dim Col kā kolekcijas kopa Col = Jauna kolekcijas kolonna. Pievienot End Sub
Saskaņā ar metodi Pievienot mums ir noteikti parametri. Pieņemsim, ka mēs uzglabājam mobilo zīmolu nosaukumus ar to vidējo pārdošanas cenu tirgū.
Sadaļā Vienums arguments norāda mobilā tālruņa cenu.
Kods:
Apakškolekcijas_piemērs () Dim Col kā kolekcijas kopa Col = Jauna kolekcijas kol. Pievienot vienumu: = 15000, beigu apakšgrupa
Pēc tam zem Atslēgas arguments ievadiet mobilā zīmola nosaukumu.
Kods:
Apakškolekcijas_piemērs () Dim Col kā kolekcijas kopa Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" End Sub
Tagad mainīgajam “ColResult” mēs saglabāsim objekta mainīgā “Col” rezultātu.
Kods:
Apakškolekcijas_piemērs () Dim Col kā kolekcijas kopa Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col (End Sub
Atverot mainīgā “Col” iekavas, mēs varam redzēt argumentu kā šī argumenta indeksu. Mums jānorāda galvenā argumenta vērtība no Collection add metodes, ti, mobilā zīmola nosaukuma.
Kods:
Apakškolekcijas_piemērs () Dim Col kā kolekcijas kopa Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") End Sub
Tagad ļaujiet rādīt rezultātu VBA ziņojumu lodziņā.
Kods:
Apakškolekcijas_piemērs () Dim Col kā kolekcijas kopa Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub
Labi, mēs esam paveikuši, kad palaidām kodu, mums vajadzētu redzēt mobilo zīmolu “Redmi” cenu.
Labāka izpratne par galvenajiem un vienumu parametriem
Esmu pārliecināts, ka nav viegli saprast objekta Kolekcija parametrus. Ļaujiet man paskaidrot jums ar vienkāršu piemēru.
Iedomājieties, ka jums ir augļu ēdienkarte ar to nosaukumu un augļu cenu. Pieņemsim, ka jūs meklējat “Ābolu” cenu pēc augļa nosaukuma.
Lai meklētu augļu cenu, mums jāpiemin augļu nosaukums, ti, kolekcijas VBA valodā Augļa nosaukums ir atslēga, un augļa cena ir “Vienība”.
Tas ir tāpat kā funkcijas VLOOKUP vai HLOOKUP lietošana, pamatojoties uz uzmeklēšanas vērtību, mēs no datu bāzes iegūsim nepieciešamos datus. Šeit uzmeklēšanas vērtība ir Atslēga un rezultāts ir Vienums.
Papildu piemērs
Iedomājieties, ka esat veikala vadītājs kādā no mazumtirdzniecības veikaliem un esat atbildīgs par klientu jautājumu pārvaldīšanu. Viens šāds klienta vaicājums ir pieprasījums par produkta cenu.
Jums jāļauj klientam meklēt produkta cenu ar pilnīgu informāciju. Līdzīgi jums jāparāda ziņojums, ja dati nav atrasti. Zemāk ir koda piemērs, kas lietotāja priekšā parādīs ievades lodziņu, un viņam ir jāievada meklētā produkta nosaukums. Ja produkts ir kolekcijā, tas parādīs minētā produkta cenu vai arī tas būs rādīt ziņojumu kā “Produkts, kuru meklējat, nepastāv”.
Kods:
Apakškolekcijas_piemērs2 () Dim ItemsCol kā kolekcija Dim ColResult As virknes kopa ItemsCol = Jaunas kolekcijas ItemsCol.Add atslēga: = "Apple", Item: = 150 ItemsCol.Add Key: = "Orange", Item: = 75 ItemsCol.Add Key: = "Ūdens melone", vienums: = 45 ItemsCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (Prompt: = "Lūdzu Ievadiet augļa nosaukumu ") Ja ItemsCol (ColResult)" "Tad MsgBox" Augļa cena "& ColResult &" ir: "& ItemsCol (ColResult) Cita MsgBox" Jūsu meklētā augļa cena nepastāv krājums "Beigt, ja beidzas Apakš