VBA Arrays i Excel - Hvordan jobbe med arrays-funksjon i VBA?

Innholdsfortegnelse

I VBA arrays brukes til å definere gruppen av objekter sammen, det er ni forskjellige matrisefunksjoner i VBA, og de er ARRAY, ERASE, FILTER, ISARRAY, JOIN, LBOUND, REDIM, SPLIT og UBOUND, alle disse er innebygde funksjoner for array i VBA gir Array-funksjonen oss verdien for det gitte argumentet.

Excel VBA Array-funksjon

Array-funksjon er en samling verdier i en enkelt variabel. Vi kan levere en matrise til en underrutine i VBA, Funksjoner og Egenskaper. VBA Arrays er en av de ofte brukte teknikkene for å lagre mer enn en verdi i variabelen.

Eksempler på Excel VBA Array-funksjon

I stedet for å erklære mange variabler og lagre verdiene, kan vi bruke Excel VBA-matrisen til å lagre verdien i en enkelt variabel selv. Se for eksempel på eksemplet nedenfor

Kode:

Sub Array_Ex () Dim x As Integer Dim y As Integer x = 1 y = 2 Range ("A1"). Verdi = x Range ("A2"). Value = y End Sub

I eksemplet ovenfor har jeg erklært to variabler kalt x & y. X holder 1 som verdien, og Y holder 2 som verdien.

Se nå på eksemplet på Excel VBA-arrayfunksjonen med en enkelt variabel.

Kode:

Sub Array_Ex () Dim x (1 To 2) Som Integer Range ("A1"). Verdi = x (1) Range ("A2"). Verdi = x (2) End Sub

Nå, hvis du kjører denne VBA-koden, ville vi ha verdier i celle A1 og A2.

Arrayvariabler returnerte resultatet som null. Dette er fordi vi nettopp har deklarert variabler som to, men vi har ikke tildelt noen verdier til disse variablene. Så vi må tilordne verdier til disse variablene.

Kode:

Underarray_Ex () Dim x (1 til 2) Som heltal x (1) = 10 x (2) = 20 Område ("A1"). Verdi = x (1) Område ("A2"). Verdi = x (2 ) End Sub

Kjør nå koden for å få resultater.

Før vi angir verdiene til arrayvariabler til celler, må vi tilordne verdien til de deklarerte arrayvariablene som vi tildelte variablene x (1) = 10 & x (2) = 20.

Eksempel nr. 1 - Sett inn serienumre ved hjelp av statisk matrise

La oss se på eksemplet med å bruke en statisk matrise for å sette inn serienumre. Dette er omtrent som det forrige.

Kode:

Sub StaticArray_Ex () Dim x (1 til 5) Som helhet x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Område ("A1"). Verdi = x (1) Område ("A2"). Verdi = x (2) Område ("A3"). Verdi = x (3) Område ("A4"). Verdi = x (4) Område ("A5" Verdi = x (5) End Sub

Kjør nå denne koden for å sette inn serienumre.

Eksempel 2 - Sett inn serienumre ved hjelp av dynamisk matrise

Nå vil vi se den andre typen matrise, dvs. en dynamisk matrise

Kode:

Sub DynamicArray_Ex () Dim x () As Integer ReDim x (5) x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Range ("A1" Verdi = x (1) Område ("A2"). Verdi = x (2) Område ("A3"). Verdi = x (3) Område ("A4"). Verdi = x (4) Område (" A5 "). Verdi = x (5) Slutt sub

Kjør nå denne koden for å få resultatet av serienumre. Vi får det samme resultatet som det forrige.

Hvis du merker at vi ikke har oppgitt lengden på matrisen mens vi deklarerer variabelen, har vi i stedet tilordnet den siste verdien av VBA-matrisen ved hjelp av VBA Redim-funksjonen. Redim har den siste verdien av matrisen som skal sendes.

Eksempel # 3 - Opprett en funksjon Sett inn månedsnavn ved hjelp av Array

Vi har sett hvordan vi kan jobbe med matriser i VBA. Nå skal vi se hvordan vi kan arbeide med en matrise for å lage en VBA-funksjon i Excel. Funksjonen er bare en brukerdefinert funksjon i VBA. Bortsett fra å bruke innebygde funksjoner, lar Excel VBA oss også lage våre egne funksjoner.

Kode:

Funksjon List_Of_Months () List_Of_Months = Array ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov "," Dec ") Sluttfunksjon

Koden nedenfor vil opprette en funksjon som kan sette inn måneder i excel-arket vårt.

Kopier og lim inn koden nedenfor til modulen din.

Lagre nå denne koden og lukk VBA Editor. Etter å ha lukket VBA-redigereren, gå til regnearket og skriv inn formelen vi nettopp har opprettet, og du bør se formelen kalt List_Of_Months i regnearket.

Åpne formelen og trykk enter. Vi får navnet på den første måneden, dvs. Jan.

Hvis du setter inn formelen en gang til, vil vi fremdeles bare få Jan, ikke neste måned, februar. Så velg først 12 kolonner på en rad.

Åpne nå formelen i D1-celle.

Siden vi har opprettet formelen med matrisen, må vi bare lukke formlene som en matriseformel. Så hold Ctrl + Shift + Enter. Vi ville ha alle 12 måneders navn.

Ting å huske

  • Det er to flere arraytyper tilgjengelig, dvs. todimensjonalt array og multidimensjonalt array.
  • Arrays starter fra 0, ikke fra 1. Null betyr første rad og første kolonne.
  • Matrisen er et stort tema. Du må forstå det for å gå videre til neste nivå.
  • Arrayvariabelen vil være en som inneholder mye data hver gang den går videre til neste nivå.
  • Redim brukes til å lagre den siste lengden på matrisen i en dynamisk matritype.

Interessante artikler...