En samling er en datatype som lagrer objekter akkurat som matriser (men forskjellige). Mens du skriver grunnleggende VBA -koder, må du ha brukt arbeidsbøker, regneark, områder osv. Alle er samlinger. I denne artikkelen vil vi lære om VBA -samlinger.
Hva er en samling i VBA?
En samling er en datatype som lagrer lignende type objekter akkurat som matriser.
Men i motsetning til matriser, kan størrelsen økes eller reduseres dynamisk etter behov.
Du kan legge til, finne, hente og slette elementer fra samlinger.
I motsetning til matriser kan du ikke endre verdier for elementer i samlinger. Hvis du vil, kan du bruke matriser som element i samlingen.
En samling har 4 egenskaper eller metoder knyttet til den.
Collection.Add Collection.Item Collection.Count Collection.Remove
Gjennom denne artikkelen vil vil utforske bruken av disse egenskapene.
Hvordan lage en samling i VBA?
En samling er et objekt, derfor er det nødvendig å deklarere og initialisere den. Som alle andre objekter i VBA, er det to metoder for å lage en samling i VBA.
1. Umiddelbar opprettelse
Dim elementer som ny samling
I metoden ovenfor blir objektet umiddelbart opprettet. Du kan begynne å bruke denne samlingen for dine krav umiddelbart.
2. Forsinket opprettelse
Dim elementer som Collection Set items = Ny samling
I denne metoden oppretter vi først en referanse for samling, og når det er nødvendig initialiserer vi med et samlingsobjekt. Ved å bruke denne metoden kan du velge å lage samlingen basert på noen kriterier.
Legge til elementer i en samling (Collection.Add)
Vi bruker metoden Legg til for å legge til nye varer i en samling.
legg til "Epler"
Koden ovenfor vil legge til strengen "Epler" i samlingen.
Legg til 1.4
Koden ovenfor legger til dobbel 1.4 på slutten av samlingen.
Vi kan også definere nøkler til disse elementene. Disse tastene kan brukes til å få tilgang til elementene i samlingen.
Sette inn elementer i samlingen før eller etter et eksisterende element
Add -metoden legger til nye elementer på slutten av samlingen.
Add -metoden har fire parametere.
Legg til (element, [nøkkel], [før], [etter])
Det første argumentet er nødvendig. Det er objektet eller som du vil legge til i samlingen. Restargumenter er valgfrie. Vi vil se bruken av disse argumentene i denne delen.
Hvis vi vil legge til et element før eller etter en pertikulær indeks/nøkkel, bruker vi før og etter -parametere for metoden Legg til.
items.Add True, "b", "cnst" 'Eller items.Add True, Before: = "cnst"
Begge linjene vil sette inn en boolsk verdi før nøkkelen "cnst" i VBA Collection -elementene.
For å sette inn et element etter en pertikulær indeks/element/nøkkel bruker vi After -parameteren Legg til -metode.
'sette inn "Mango" med nøkkelen "m" etter nøkkelen "cnst" -elementer. Legg til "Mango", Nøkkel: = "m", etter: = "b"
Over linjen vil du sette inn "Mango" med tasten "m" etter nøkkelen "b".
Merk: Nøklene til elementene skal være unike. Enhver nøkkel som allerede finnes i samlingen vil ikke bli akseptert. VBA returnerer en feilmelding om at "nøkkelen allerede er knyttet til et element i denne samlingen".
Vi kan bruke dette til vår fordel få en unik liste fra samlingen.
Få tilgang til samlinger (Collection.Item)
Det er to metoder for å få tilgang til elementene i en samling.
- Samlingsnavn ("indeks/nøkkel")
- CollectionName.Item ("indeks/nøkkel")
For eksempel for å få tilgang til et medlem i en samling elementer på indeks 1 og tast "apl", kan jeg bruke hvilken som helst av VBA -kodene nedenfor.
Debug.Print items.Item (1) - Debug.Print items (1) - Debug.Print items.Item ("apl") - Debug.Print items ("apl")
Hvordan få tellingen av gjenstander i en samling? (Collection.Count)
For å få totalt antall objekter eller elementer i en samling, bruker vi .Count -funksjonen i samlingen. .Count -metoden returnerer totalt antall varer i samlingen.
varer. Antall
Over linjen viser antallet objekter samlingen har.
Hvordan få tilgang til alle elementene i en samling?
Den eneste måten å få tilgang til alle elementene i samlingen i VBA er sløyfer. Vi går gjennom hvert innsamlingselement for å få tilgang til dem. Til det bruker vi for loop. For hver sløyfe regnes som den raskeste og reneste måten å få tilgang til samleobjekter.
Looping Through a Collection i VBA
Det er forskjellige måter å gå gjennom samlingen i VBA. Vi vil bruke den mest elegante for hver sløyfe for å gjenta gjennom samlingen.
For å gå gjennom hvert element i en samling, bare bruk denne VBA -koden.
For hver itm I elementer Debug.Print itm Neste itm
Fjerne elementer fra en samling (Collection.Remove)
For å fjerne et element fra en vba -samling, kan vi bruke Fjern -metoden. Fjernmetoden tar ett argument. Det kan være indeksen eller nøkkelen til elementet (hvis tilgjengelig).
items.Remove (1) 'using index - items.Remove 1 - items.Remove ("apl")' using key - items.Remove "apl"
Sletter samling i VBA
Vel, du kan ikke slette en samling i vba. Du kan imidlertid fjerne alle elementene i samlingen ved å angi den igjen som en ny samling.
Sett elementer = Ny samling
Denne kodelinjen vil opprette en ny samling på adressen til elementene. Derfor blir samlingen vår tømt.
Array vs Collection i VBA
Array |
Samling |
Så ja gutta, dette er det grunnleggende i samlinger. Det er mange fordeler og bruksområder med VBA -samling i kontorverktøy. Vi skal utforske dem sammen. Inntil da, hvis du har spørsmål angående samling eller noe relatert til Excel/VBA, legg det ned i kommentarfeltet nedenfor.