Kogumik on andmetüüp, mis hoiab salvestusobjekte nagu massiive (kuid erinevaid). Põhiliste VBA -koodide kirjutamise ajal peate olema kasutanud töövihikuid, töölehti, vahemikke jne. Kõik need on kogud. Selles artiklis õpime tundma VBA kogusid.
Mis on kollektsioon VBA -s?
Kogu on andmetüüp, mis salvestab sarnast tüüpi objekte nagu massiivid.
Kuid erinevalt massiividest saab selle suurust vastavalt vajadusele dünaamiliselt suurendada või vähendada.
Saate kogudest üksusi lisada, leida, tuua ja kustutada.
Erinevalt massiividest ei saa te kogudes olevate üksuste väärtusi muuta. Kui soovite, kasutage massiive kollektsiooni üksusena.
Koguga on seotud 4 omadust või meetodit.
Collection.Add Collection.Item Collection.Count Collection.Eemalda
Selle artikli kaudu uurime nende omaduste kasutamist.
Kuidas luua kollektsiooni VBA -s?
Kogu on objekt, seega tuleb see deklareerida ja lähtestada. Nagu iga teine VBA objekt, on ka VBA -s kollektsiooni loomiseks kaks meetodit.
1. Kohene loomine
Hämardage esemed uue kollektsioonina
Ülaltoodud meetodil luuakse objekt koheselt. Saate kohe hakata seda kollektsiooni oma vajadustele vastavaks kasutama.
2. Hiline loomine
Üksuste hämardamine kogumikomplektidena = Uus kogu
Selle meetodi puhul loome esmalt kogumisviite ja vajadusel initsialiseerime kogumisobjekti. Selle meetodi abil saate kollektsiooni luua mõne kriteeriumi alusel.
Üksuste lisamine kogusse (Collection.Add)
Me kasutame kollektsiooni uute üksuste lisamiseks meetodit Lisa.
üksused. Lisage "Õunad"
Ülaltoodud kood lisab kollektsiooni stringi "Õunad".
üksused. Lisa 1.4
Ülaltoodud kood lisab kogumise lõppu topelt 1,4.
Samuti saame määrata nende üksuste võtmed. Neid võtmeid saab kasutada kogudes olevatele üksustele.
Esemete lisamine kollektsiooni enne või pärast olemasolevat eset
Lisa meetod lisab kogu lõppu uusi üksusi.
Lisamismeetodil on neli parameetrit.
Lisa (üksus, [võti], [enne], [pärast])
Esimene argument on vajalik. See on objekt või see, mida soovite kollektsiooni lisada. Ülejäänud argumendid on valikulised. Näeme nende argumentide kasutamist selles jaotises.
Kui me tahame lisada mõne üksuse enne või pärast mõnda sobivat indeksit/võtit, siis kasutame lisamismeetodi parameetreid enne ja pärast.
items.Add True, "b", "cnst" 'Või items.Add True, Before: = "cnst"
Mõlemad read lisavad VBA kollektsiooni üksustesse enne võtit "cnst" tõeväärtuse.
Üksuse sisestamiseks sobiva indeksi/elemendi/võtme järele kasutame lisamismeetodi parameetrit After.
"Mango" lisamine võtme "c" järel võtme "m" juurde. Lisage "Mango", võti: = "m", pärast: = "b"
Ülaltoodud reale lisatakse võtme "b" järel "Mango" ja võti "m".
Märge: Esemete võtmed peaksid olema ainulaadsed. Kogus juba olemasolevaid võtmeid ei aktsepteerita. VBA tagastab vea, et "võti on juba selle kollektsiooni elemendiga seotud".
Saame seda oma eeliseks kasutada, et saada kollektsioonist ainulaadne loend.
Juurdepääs kogumisüksustele (Collection.Item)
Kollektsiooni üksustele juurdepääsemiseks on kaks meetodit.
- CollectionName ("register/võti")
- CollectionName.Item ("indeks/võti")
Näiteks juurdepääs kogu liikmele esemeid indeksis 1 ja võtmes "apl" võin kasutada mis tahes allpool toodud VBA koode.
Debug.Print items.Item (1) - Debug.Print items (1) - Debug.Print items.Item ("apl") - Debug.Print items ("apl")
Kuidas kogudes olevaid esemeid lugeda? [Collection.Count]
Kogus olevate objektide või esemete koguarvu saamiseks kasutame kogumise funktsiooni. Meetod .Count tagastab kogu üksuste koguarvu.
esemed. Loend
Ülaltoodud joonisel kuvatakse kollektsioonis olevate objektide arv.
Kuidas pääseda juurde kõigile kollektsiooni esemetele?
Ainus viis VBA kollektsiooni kõikidele üksustele juurde pääseda on silmused. Kordame läbi iga kollektsiooni, et neile juurde pääseda. Selleks kasutame silmus. Iga silmust peetakse kiireimaks ja puhtaimaks viisiks kogumisobjektidele juurde pääsemiseks.
Kollektsiooni kordamine VBA -s
Kollektsiooni VBA -s leidmiseks on mitmeid viise. Kasutame kollektsiooni kordamiseks iga silmuse jaoks kõige elegantsemat.
Liiga ringi kogu kogu üksusest kasutage lihtsalt seda VBA -koodi rida.
Iga itm üksuste jaoks silumine. Printige see järgmine itm
Üksuste eemaldamine kogust (Collection.Eemalda)
Üksuse eemaldamiseks vba kogust saame kasutada eemaldamismeetodit. Eemaldamismeetod võtab ühe argumendi. See võib olla üksuse indeks või võti (kui see on saadaval).
items.Remove (1) 'using index - items.Eemalda 1 - items.Remove ("apl")' using key - items.Eemalda "apl"
Kogu kustutamine VBA -s
Noh, te ei saa vba kollektsiooni kustutada. Siiski saate selle kogu kõik üksused eemaldada, määrates selle uuesti uueks koguks.
Määra üksused = Uus kogu
See koodirida loob esemete aadressile uue kogu. Seetõttu tühjendatakse meie kogu.
Massiiv vs kollektsioon VBA -s
Massiiv |
Kogu |
Nii et jah, poisid, see on kollektsioonide põhitõed. VBA kollektsioonil on kontoritööriistades palju eeliseid ja kasutusvõimalusi. Uurime neid koos. Seni, kui teil on kogumise või mõne muu Exceli/VBA -ga seonduva kohta küsimusi, kirjutage see allpool olevasse kommentaaride sektsiooni.