Hvad er et VBA-array i Excel, og hvordan programmeres et

VBA har været en del af Microsoft Office -pakken i mange år. Selvom det ikke har den fulde funktionalitet og kraft som en fuld VB-applikation, giver VBA Office - brugere fleksibiliteten til at integrere Office - produkter og automatisere det arbejde, du udfører i dem.

Et af de mest kraftfulde værktøjer, der er tilgængelige i VBA , er evnen til at indlæse en hel række af data i en enkelt variabel kaldet et array. Ved at indlæse data på denne måde kan du manipulere eller udføre beregninger på dette dataområde på en række forskellige måder.

Så hvad er et VBA -array? I denne artikel vil vi besvare det spørgsmål og vise dig, hvordan du bruger en i dit eget VBA-script(your own VBA script) .

Hvad er et VBA-array?

Det er meget simpelt at bruge et VBA -array i Excel , men at forstå konceptet med arrays kan være lidt komplekst, hvis du aldrig har brugt et.

Tænk(Think) på et array som en kasse med sektioner indeni. Et endimensionelt array er en kasse med en linje af sektioner. Et todimensionelt array er en kasse med to linjer af sektioner.

Du kan lægge data ind i hver sektion af denne "boks" i den rækkefølge, du ønsker.

I begyndelsen af ​​dit VBA -script skal du definere denne "boks" ved at definere dit VBA -array. Så for at skabe et array, der kan indeholde et sæt data (en en-dimensionel array), ville du skrive følgende linje.

Dim arrMyArray(1 To 6) As String

Senere i dit program kan du placere data i en hvilken som helst sektion af dette array ved at henvise til sektionen inden for parentes.

arrMyArray(1) = "Ryan Dube"

Du kan oprette et todimensionalt array ved hjælp af følgende linje.

Dim arrMyArray(1 To 6,1 to 2) As Integer

Det første tal repræsenterer rækken, og det andet er kolonnen. Så ovenstående array kunne indeholde et interval med 6 rækker og 2 kolonner.

Du kan indlæse ethvert element i dette array med data som følger.

arrMyArray(1,2) = 3

Dette vil indlæse en 3'er i cellen B1.

Et array kan indeholde enhver type data som en regulær variabel, såsom strenge, boolean, heltal, flydende og mere.

Tallet inde i parentesen kan også være en variabel. Programmerere bruger almindeligvis en For Loop til at tælle gennem alle sektioner af et array og indlæse dataceller i regnearket i arrayet. Du vil se, hvordan du gør dette senere i denne artikel.

Sådan programmeres et VBA-array i Excel

Lad os tage et kig på et simpelt program, hvor du måske ønsker at indlæse information fra et regneark til et multidimensionelt array.

Lad os som et eksempel se på et produktsalgsregneark, hvor du vil trække sælgerens navn, vare og samlede salg ud af regnearket.

Bemærk, at i VBA , når du refererer til rækker eller kolonner, tæller du rækker og kolonner(rows and columns) startende fra øverst til venstre ved 1. Så rep-kolonnen er 3, varekolonnen er 4, og den samlede kolonne er 7.

For at indlæse disse tre kolonner over alle 11 rækker, skal du skrive følgende script.

Dim arrMyArray(1 To 11, 1 To 3) As String
Dim i As Integer, j As Integer
For i = 2 To 12
For j = 1 To 3
arrMyArray(i-1, j) = Cells(i, j).Value
Next j
Next i

Du vil bemærke, at for at springe overskriftsrækken over, skal rækkenummeret i den første For look starte på 2 i stedet for 1. Det betyder, at du skal trække 1 fra for matrixrækkeværdien, når du indlæser celleværdien ind i arrayet ved hjælp af celler(Cells) (i, j). Værdi.

Hvor skal du indsætte dit VBA Array Script(Your VBA Array Script)

For at placere et VBA -script i Excel , skal du bruge VBA - editoren. Du kan få adgang til dette ved at vælge Udviklermenuen(Developer) og vælge Vis kode(View Code) i sektionen Kontrolelementer(Controls) på båndet.

Hvis du ikke kan se udvikleren(Developer) i menuen, skal du tilføje den. For at gøre dette skal du vælge Filer(File) og indstillinger(Options) for at åbne vinduet Excel-indstillinger.

Skift vælg kommandoer fra rullemenuen til Alle kommandoer(All Commands) . Vælg Udvikler(Developer) i menuen til venstre, og vælg knappen Tilføj(Add) for at flytte den til ruden til højre. Marker afkrydsningsfeltet for at aktivere det, og vælg OK for at afslutte.

Når vinduet Code Editor åbner, skal du sørge for, at arket dine data er valgt i venstre rude. Vælg Arbejdsark(Worksheet) i rullemenuen til venstre og Aktiver(Activate) til højre. Dette vil oprette en ny underrutine kaldet Worksheet_Activate ().

Denne funktion vil køre, når regnearksfilen åbnes. Indsæt koden i scriptruden inde i denne underrutine.

Dette script vil arbejde gennem de 12 rækker og vil indlæse rep-navnet fra kolonne 3, varen fra kolonne 4 og det samlede salg fra kolonne 7.

Når begge For-løkker er færdige, indeholder det todimensionelle array arrMyArray alle de data, du har angivet fra det originale ark.

Manipulering af arrays i Excel VBA

Lad os sige, at du vil anvende en moms på 5 % på alle de endelige salgspriser og derefter skrive alle data til et nyt ark.

Du kan gøre dette ved at tilføje en anden For-løkke efter den første, med en kommando til at skrive resultaterne til et nyt ark.

For k = 2 To 12
Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
Next k

Dette vil "aflæse" hele arrayet i Sheet2 , med en ekstra række, der indeholder totalen ganget med 5% for afgiftsbeløbet.

Det resulterende ark vil se sådan ud.

Som du kan se, er VBA -arrays i Excel ekstremt nyttige og lige så alsidige som ethvert andet Excel-trick(any other Excel trick)

Eksemplet ovenfor er en meget enkel anvendelse af et array. Du kan oprette meget større arrays og udføre sortering, gennemsnitsberegning eller mange andre funktioner i forhold til de data, du gemmer i dem.

Hvis du vil være rigtig kreativ, kan du endda oprette to arrays , der indeholder en række celler(containing a range of cells) fra to forskellige ark, og udføre beregninger mellem elementer i hvert array.

Ansøgningerne er kun begrænset af din fantasi.



About the author

"Jeg er freelance-ekspert i Windows og Office. Jeg har over 10 års erfaring med at arbejde med disse værktøjer og kan hjælpe dig med at få mest muligt ud af dem. Mine færdigheder omfatter: at arbejde med Microsoft Word, Excel, PowerPoint og Outlook; skabe web sider og applikationer; og hjælpe kunder med at nå deres forretningsmål."



Related posts