Indholdsfortegnelse:
Video: You Bet Your Life: Secret Word - Tree / Milk / Spoon / Sky 2024
De fleste programmeringssprog understøtter arrays, herunder VBA. Et array er en gruppe af variabler, der deler et navn. Du henviser til en bestemt variabel i arrayet ved at bruge arraynavnet og et indeksnummer i parentes. Du kan for eksempel definere en række af 12 strengvariabler for at holde navnene på årets måneder. Hvis du navngiver arrayet MonthNames , kan du referere til det første element i arrayet som MonthNames (1), det andet element som MonthNames (2) og så videre.
Deklarationer
Før du kan bruge et array, skal du skal erklære det. Ingen undtagelser. I modsætning til normale variable er VBA meget streng over denne regel. Du erklærer en matrix med en Dim eller Offentlig erklæring, ligesom du erklærer en regelmæssig variabel. Du skal dog også angive antallet af elementer i arrayet. Du gør dette ved at angive det første indeksnummer, søgeordet til og det sidste indeksnummer - alle inden for parentes. Følgende eksempel viser, hvordan man erklærer en matrix på 100 heltal:
Dim MyArray (1 til 100) Som helhed
Når du erklærer en matrix, kan du vælge at angive kun det øverste indeks. Hvis du udelader det lavere indeks, antager VBA at det er 0. Derfor erklærer begge de følgende udsagn samme 101-element array:
Dim MyArray (0 til 100) Som Integer Dim MyArray (100) Som Integer
Hvis du vil have VBA at antage, at 1 (i stedet for 0) er det nederste indeks for dine arrayer, skal du medtage følgende erklæring i afsnittet Erklæringer øverst i dit modul:
Option Base 1
Denne sætning tvinger VBA til at bruge 1 som det første indeksnummer til arrays, der kun erklærer det øverste indeks. Hvis denne sætning er til stede, er følgende sætninger identiske, begge erklærer en 100-elements array:
Dim MyArray (1 til 100) Som Integer Dim MyArray (100) Som Integer
Multidimensionale Arrays
De arrayer oprettet i de foregående eksempler er alle endimensionelle arrays. Tænk på endimensionelle arrays som en enkelt række værdier. Arrays du opretter i VBA kan have så mange som 60 dimensioner - selv om du sjældent har brug for mere end to eller tre dimensioner i en matrix. Følgende eksempel erklærer et 81-tal-array med to dimensioner:
Dim MyArray (1 til 9, 1 til 9) Som helhed
Du kan tænke på dette array som optaget af en 9 x 9 matrix - perfekt til opbevaring af alle tal i et Sudoku-puslespil.
For at henvise til et specifikt element i dette array skal du angive to indeksnumre (svarende til dets "række" og dets "kolonne" i matrixen).Følgende eksempel viser, hvordan du kan tildele en værdi til et element i dette array:
MyArray (3, 4) = 125
Denne sætning tildeler en værdi til et enkelt element i arrayet. Hvis du tænker på arrayet i form af en 9 x 9 matrix, tildeler dette 125 til elementet i matrixens tredje række og fjerde kolonne.
Sådan erklæres et tredimensionelt array med 1 000 elementer:
Dim My3DArray (1 til 10, 1 til 10, 1 til 10) som heltal
Du kan tænke på en tredimensionel array som en terning. Visualisering af en matrix med mere end tre dimensioner er vanskeligere.
Dynamiske arrayer
Du kan også oprette dynamiske arrayer. Et dynamisk array har ikke et forudindstillet antal elementer. Erklære et dynamisk array med et tomt sæt parenteser:
Dim MyArray () Som integer
Før du kan bruge dette array, skal du bruge ReDim-sætningen til at fortælle VBA, hvor mange elementer arrayet har. Normalt bestemmes antallet af elementer i arrayet, mens din kode kører. Du kan bruge ReDim-sætningen et vilkårligt antal gange, ændre arrayets størrelse så ofte som nødvendigt. Følgende eksempel viser hvordan man ændrer antallet af elementer i et dynamisk array. Det antager, at NumElements-variablen indeholder en værdi, som din kode beregnet.
ReDim MyArray (1 til NumElements)
Når du redimensionerer en matrix ved hjælp af ReDim, sletter du de værdier, der aktuelt er gemt i arrayelementerne. Du kan undgå at ødelægge de gamle værdier ved at bruge Bevar søgeord. Følgende eksempel viser, hvordan du kan bevare et arrays værdier, når du redimensionerer arrayet:
ReDim Preserve MyArray (1 til NumElements)
Hvis MyArray i øjeblikket har ti elementer, og du udfører den foregående statement med NumElements svarende til 12, De første ti elementer forbliver intakte, og arrayet har plads til to yderligere elementer (op til nummeret i variablen NumElements). Hvis NumElements er lig med 7, beholdes de første syv elementer, men de resterende tre elementer opfylder deres død.