En samling er en datatype, der gemmer objekter ligesom arrays (men forskellige). Mens du skriver grundlæggende VBA -koder, skal du have brugt arbejdsbøger, regneark, intervaller osv. De er alle samlinger. I denne artikel lærer vi om VBA -samlinger.
Hvad er en samling i VBA?
En samling er en datatype, der gemmer lignende type objekter ligesom arrays.
Men i modsætning til arrays kan størrelsen øges eller formindskes dynamisk efter behov.
Du kan tilføje, finde, hente og slette elementer fra samlinger.
I modsætning til array'er kan du ikke ændre værdier for varer i samlinger. Hvis du vil, skal du bruge arrays som genstand i samlingen.
En samling har 4 egenskaber eller metoder tilknyttet den.
Collection.Add Collection.Item Collection.Count Collection.Remove
Gennem denne artikel vil vil undersøge brugen af disse egenskaber.
Hvordan opretter man en samling i VBA?
En samling er et objekt, derfor er det nødvendigt at deklarere og initialisere den. Som ethvert andet objekt i VBA er der to metoder til at oprette en samling i VBA.
1. Øjeblikkelig oprettelse
Dim emner som ny kollektion
I ovenstående metode oprettes objektet øjeblikkeligt. Du kan straks begynde at bruge denne samling til dine krav.
2. Forsinket oprettelse
Dim emner som Collection Set items = Ny samling
I denne metode opretter vi først en reference til samling, og efter behov initialiserer vi med et samlingsobjekt. Ved hjælp af denne metode kan du vælge at oprette samlingen baseret på nogle kriterier.
Tilføjelse af varer til en samling (Collection.Add)
Vi bruger metoden Tilføj til at tilføje nye varer til en samling.
items.Tilføj "æbler"
Ovenstående kode tilføjer strengen "Æbler" i samlingen.
ting. Tilføj 1.4
Ovenstående kode tilføjer dobbelt 1.4 til slutningen af indsamlingen.
Vi kan også definere nøgler til disse elementer. Disse nøgler kan bruges til at få adgang til genstande i samlingen.
Indsættelse af emner i samlingen før eller efter et eksisterende element
Tilføj -metoden tilføjer nye varer i slutningen af samlingen.
Tilføjingsmetoden har fire parametre.
Tilføj (element, [nøgle], [før], [efter])
Det første argument er nødvendigt. Det er objektet, eller som du vil tilføje i samlingen. Restargumenter er valgfrie. Vi vil se brugen af disse argumenter i dette afsnit.
Hvis vi vil tilføje et element før eller efter et pertikulært indeks/en nøgle, bruger vi før og efter parametre for tilføjelsesmetoden.
items.Add True, "b", "cnst" 'Eller items.Add True, Before: = "cnst"
Begge linjer indsætter en boolsk værdi før nøglen "cnst" i VBA Collection -elementerne.
For at indsætte et element efter et pertikulært indeks/element/nøgle bruger vi After -parameteren Tilføj metode.
'indsættelse af "Mango" med nøglen "m" efter nøglen "cnst" -elementer. Tilføj "Mango", Nøgle: = "m", efter: = "b"
Over linjen indsættes "Mango" med tasten "m" efter tasten "b".
Bemærk: Nøglerne til genstande skal være unikke. Enhver nøgle, der allerede findes i samlingen, accepteres ikke. VBA returnerer en fejl om, at "nøglen allerede er knyttet til et element i denne samling".
Vi kan bruge dette til vores fordel få en unik liste fra samlingen.
Få adgang til genstande i samlingen (Collection.Item)
Der er to metoder til at få adgang til genstande i en samling.
- CollectionName ("indeks/nøgle")
- CollectionName.Item ("indeks/nøgle")
For eksempel at få adgang til et medlem i en samling genstande ved indeks 1 og tast "apl", kan jeg bruge en af nedenstående VBA -koder.
Debug.Print items.Item (1) - Debug.Print items (1) - Debug.Print items.Item ("apl") - Debug.Print items ("apl")
Hvordan får man optælling af genstande i en samling? (Collection.Count)
For at få det samlede antal objekter eller genstande i en samling, bruger vi .Count -funktion i samlingen. .Count -metoden returnerer det samlede antal varer i samlingen.
varer.Tælling
Over linjen angiver antallet af objekter, samlingen har.
Hvordan får man adgang til alle genstande i en samling?
Den eneste måde at få adgang til alle genstande i samlingen i VBA er sløjfer. Vi gentager gennem hvert samlingsobjekt for at få adgang til dem. Til det bruger vi til loop. For hver sløjfe betragtes som den hurtigste og reneste måde at få adgang til indsamlingsobjekter.
Looping gennem en samling i VBA
Der er forskellige måder at gå igennem samlingen i VBA. Vi vil bruge den mest elegante for hver sløjfe til at gentage kollektionen.
For at gå igennem hvert element i en samling, skal du bare bruge denne linje med VBA -kode.
For hver itm I varer Debug.Print itm Næste itm
Fjernelse af genstande fra en samling (samling. Fjern)
For at fjerne et element fra en vba -samling kan vi bruge Fjern -metode. Fjernmetoden tager et argument. Det kan være indekset eller nøglen til varen (hvis tilgængelig).
items.Remove (1) 'using index - items.Remove 1 - items.Remove ("apl")' using key - items.Remove "apl"
Sletter samling i VBA
Nå, du kan ikke slette en samling i vba. Du kan dog fjerne alle genstande i den samling ved at indstille den igen som en ny samling.
Sæt varer = Ny samling
Denne kodelinje opretter en ny samling om varernes adresse. Derfor bliver vores samling tømt.
Array vs samling i VBA
Array |
Kollektion |
Så ja fyre, det er det grundlæggende i samlinger. Der er mange fordele og anvendelser ved VBA -samling i kontorværktøjer. Vi vil udforske dem sammen. Indtil da, hvis du har spørgsmål til indsamling eller noget relateret til Excel/VBA, skal du skrive det i kommentarfeltet herunder.