VBA-samling - Hvordan oprettes indsamlingsobjekt i VBA?

Indholdsfortegnelse

Excel VBA-indsamlingsobjekt

I VBA-kodning kan vi, bortset fra den eksisterende samling af varer under en gruppe, oprette vores samlingsgrupper. I vores mange artikler har vi talt om objektvariabler, og i denne vejledning gennemgår vi VBA-samlingsobjektet i detaljer.

Hvis du har gennemgået vores tidligere artikel "VBA Arrays", vil dette være meget lettere for dig at forstå. Arrays bruges til at gruppere variabler under et tag; På samme måde bruges Collection også til at gemme en gruppe variabler.

Samlinger bruges til at gemme objekter. De er langt mere fleksible end VBA-arrays, hvorimod arrays har faste størrelsesbegrænsninger, men læsere har ikke nogen fast størrelsesgrænse på et givet tidspunkt og kræver endda ikke manuel størrelse.

VBA Collection ligner meget "VBA Dictionary", men ordbogen kræver ekstern objektreference for at være opsat under objektreferencevinduet. Med VBA Dictionary er vi nødt til at indstille referencetypen som "Microsoft Scripting Runtime", men Collection kræver ingen ekstra fittings.

Hvordan oprettes indsamlingsobjekt i VBA?

For at komme i gang med indsamling først er vi nødt til at erklære variablen som "Samling."

Kode:

Sub Collection_Example () Dim Col Som Collection End Sub

Da samlingen er en objektvariabel, skal vi indstille objektreferencen ved at oprette en ny forekomst.

Kode:

Sub Collection_Example () Dim Col Som Collection Set Col = New Collection End Sub

Nu med variablen kan vi få adgang til alle metoderne til samlingsvariablen “Col.”

Kode:

Sub Collection_Example () Dim Col Som Collection Set Col = New Collection Col. End Sub

Før vi bruger disse metoder, er vi nødt til at erklære en variabel som en streng.

Kode:

Undersamling_eksempel () Dim Col Som Collection Set Col = Ny samling Dim ColResult Som streng End Sub

Brug nu variablen "Col" til at vælge "Add" -metoden.

Kode:

Sub Collection_Example () Dim Col Som Collection Set Col = New Collection Col.Add End Sub

Under metoden Tilføj har vi specifikke parametre. Lad os antage, at vi gemmer mobile mærker med deres gennemsnitlige salgspris på markedet.

Under vare indtaster argumentet prisen på mobilen.

Kode:

Undersamling_eksempel () Dim Col som samling Sæt Col = Ny samling Col.Tilføj vare: = 15000, Afslut sub

Indtast derefter mobilmærkenavnet under hovedargumentet.

Kode:

Sub Collection_Example () Dim Col Som Collection Set Col = New Collection Col.Tilføj vare: = 15000, Key: = "Redmi" End Sub

For variablen "ColResult" gemmer vi resultatet af "Col" -objektvariablen.

Kode:

Undersamling_eksempel () Dim Col som samling Sæt Col = Ny samling Col.Tilføj vare: = 15000, Nøgle: = "Redmi" ColResult = Col (Afslut sub

Når du åbner parentesen for variablen "Col", kan vi se argumentet som indeks. Til dette argument er vi nødt til at levere den kritiske argumentværdi fra Collection add-metoden, dvs. navnet på mobilmærket.

Kode:

Undersamling_eksempel () Dim Col som samling Sæt Col = Ny samling Col.Tilføj vare: = 15000, Nøgle: = "Redmi" ColResult = Col ("Redmi") Afslut sub

Lad os nu vise resultatet i meddelelsesboksen i VBA.

Kode:

Sub Collection_Example () Dim Col Som Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub

Ok, vi er færdige, når vi kører koden. Vi skal se prisen på mobilmærket "Redmi."

Bedre forståelse af nøgle- og elementparametre

Jeg er sikker på, at det ikke er let at forstå parametrene for Collection-objektet. Lad mig forklare dig et simpelt eksempel.

Forestil dig, at du har en menu med frugter med deres navn og prisen på frugterne. Antag, at du søger i "Apple" -frugtprisen med navnet på frugten.

For at søge på prisen på frugten skal vi nævne navnet på frugten, dvs. i samlingens VBA-sprog Frugtens navn er nøglen, og prisen på frugten er "Vare".

Det er som at anvende VLOOKUP- eller HLOOKUP-funktionen, baseret på opslagsværdien, og vi henter de nødvendige data fra databasen. Her er opslagsværdi nøgle, og resultatet er vare.

Avanceret eksempel

Forestil dig, at du er butikschef i en af ​​detailbutikkerne, og at du er ansvarlig for at administrere kundeforespørgsler. En sådan kundeforespørgsel er en forespørgsel om produktprisen.

Det ville hjælpe, hvis du tillod kunden at søge i prisen på produktet med komplette oplysninger. På samme måde skal du vise meddelelsen, hvis der ikke findes nogen data. Nedenfor er eksempelkoden, der viser inputboksen foran brugeren. De skal indtaste navnet på det produkt, de leder efter. Hvis produktet er der i samlingen, viser det prisen på det nævnte produkt, ellers vises meddelelsen "Det produkt, du søger efter, findes ikke."

Kode:

Sub Collection_Example2 () Dim ItemsCol Som Collection Dim ColResult Som streng Sæt ItemsCol = New Collection ItemsCol.Add Key: = "Apple", Item: = 150 ItemsCol.Add Key: = "Orange", Item: = 75 ItemsCol.Add Key: = "Water Melon", Item: = 45 ItemsCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (Prompt: = "Please Indtast frugtnavnet ") Hvis ItemsCol (ColResult)" "Derefter MsgBox" Frugtprisen "& ColResult &" er: "& ItemsCol (ColResult) Ellers MsgBox" Prisen på den frugt, du leder efter, findes ikke samlingen "End If End Sub

Interessante artikler...