Arbeide med matriser for VBA-programmering i Excel 2016

De fleste programmeringsspråk støtter arrays, inkludert VBA. En matrise er en gruppe variabler som deler et navn. Du refererer til en spesifikk variabel i matrisen ved å bruke matrisenavnet og et indeksnummer i parentes. Du kan for eksempel definere en matrise med 12 strengvariabler for å inneholde navnene på månedene i året. Hvis du navngir matrisen MonthNames , kan du referere til det første elementet i matrisen som MonthNames (1), det andre elementet som MonthNames (2), og så videre.

Deklarerer matriser

Før du kan bruke en matrise, må du deklarere den. Ingen unntak. I motsetning til normale variabler, er VBA veldig strenge med denne regelen. Du erklærer en matrise med en Dim eller Public-setning, akkurat som du erklærer en vanlig variabel. Du må imidlertid også spesifisere antall elementer i matrisen. Du gjør dette ved å spesifisere det første indeksnummeret, nøkkelordet Til og det siste indeksnummeret - alt innenfor parentes. Følgende eksempel viser hvordan du deklarerer en matrise med 100 heltall:

Dim MyArray(1 til 100) som heltall

Når du erklærer en matrise, kan du velge å spesifisere kun den øvre indeksen. Hvis du utelater den nedre indeksen, antar VBA at den er 0. Derfor erklærer begge de følgende setningene den samme 101-elements matrisen:

Dim MyArray (0 til 100) som heltall
Dim MyArray (100) Som heltall

Hvis du vil at VBA skal anta at 1 (i stedet for 0) er den nedre indeksen for matrisene dine, inkluderer følgende setning i Deklarasjonsdelen øverst i modulen:

Alternativ base 1

Denne setningen tvinger VBA til å bruke 1 som det første indeksnummeret for matriser som kun erklærer den øvre indeksen. Hvis denne setningen er til stede, er følgende setninger identiske, og begge erklærer en 100-elements matrise:

Dim MyArray (1 til 100) som heltall
Dim MyArray (100) Som heltall

Flerdimensjonale arrays

Matrisene opprettet i de foregående eksemplene er alle endimensjonale matriser. Tenk på endimensjonale matriser som en enkelt linje med verdier. Matriser du oppretter i VBA kan ha så mange som 60 dimensjoner - selv om du sjelden trenger mer enn to eller tre dimensjoner i en matrise. Følgende eksempel erklærer en 81-heltallsmatrise med to dimensjoner:

Dim MyArray (1 til 9, 1 til 9) som heltall

Du kan tenke på denne matrisen som en matrise på 9 x 9 – perfekt for å lagre alle tall i et Sudoku-puslespill.

For å referere til et spesifikt element i denne matrisen, må du spesifisere to indeksnummer (ligner på "raden" og "kolonnen" i matrisen). Følgende eksempel viser hvordan du kan tilordne en verdi til et element i denne matrisen:

MyArray (3, 4)= 125

Denne setningen tildeler en verdi til et enkelt element i matrisen. Hvis du tenker på matrisen i form av en 9 x 9 matrise, tildeler dette 125 til elementet i den tredje raden og den fjerde kolonnen i matrisen.

Slik erklærer du en tredimensjonal matrise med 1000 elementer:

Dim My3DArray (1 til 10, 1 til 10, 1 til 10) som heltall

Du kan tenke på en tredimensjonal matrise som en kube. Å visualisere en rekke med mer enn tre dimensjoner er vanskeligere.

Dynamiske arrays

Du kan også lage dynamiske matriser. En dynamisk matrise har ikke et forhåndsinnstilt antall elementer. Deklarer en dynamisk matrise med et tomt sett med parenteser:

Dim MyArray () Som heltall

Før du kan bruke denne matrisen, må du bruke ReDim-setningen for å fortelle VBA hvor mange elementer matrisen har. Vanligvis bestemmes antall elementer i matrisen mens koden kjører. Du kan bruke ReDim-setningen et hvilket som helst antall ganger, endre matrisens størrelse så ofte som nødvendig. Følgende eksempel viser hvordan du endrer antall elementer i en dynamisk matrise. Den forutsetter at NumElements-variabelen inneholder en verdi som koden din har beregnet.

ReDim MyArray (1 til NumElements)

Når du omdimensjonerer en matrise ved å bruke ReDim, sletter du alle verdier som er lagret i matriseelementene. Du kan unngå å ødelegge de gamle verdiene ved å bruke Bevar nøkkelordet. Følgende eksempel viser hvordan du kan bevare en matrises verdier når du omdimensjonerer matrisen:

ReDim Preserve MyArray (1 To NumElements)

Hvis MyArray for øyeblikket har ti elementer, og du utfører den foregående setningen med NumElements som tilsvarer 12, forblir de ti første elementene intakte, og matrisen har plass til ytterligere to elementer (opp til tallet i variabelen NumElements). Hvis NumElements er lik 7, beholdes de første syv elementene, men de resterende tre elementene går bort.


Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows Microsoft Word åpner filer i skrivebeskyttet modus, noe som gjør det umulig å redigere dem? Ikke bekymre deg, metodene er nedenfor

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Slik fikser du feil ved utskrift av feil Microsoft Word-dokumenter Feil ved utskrift av Word-dokumenter med endrede fonter, rotete avsnitt, manglende tekst eller tapt innhold er ganske vanlig. Men ikke gjør det

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Hvis du har brukt pennen eller merkepennen til å tegne på PowerPoint-lysbildene dine under en presentasjon, kan du lagre tegningene til neste presentasjon eller slette dem, slik at du neste gang du viser dem starter med rene PowerPoint-lysbilder. Følg disse instruksjonene for å slette penn- og merkepenntegninger: Slette linje én på […]

Style Library-innhold i SharePoint 2010

Style Library-innhold i SharePoint 2010

Stilbiblioteket inneholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og bilder som brukes av forhåndsdefinerte mastersider, sideoppsett og kontroller i SharePoint 2010. For å finne CSS-filer i stilbiblioteket til et publiseringsnettsted: Velg Site Actions→ View Alt innhold på nettstedet. Innholdet på nettstedet vises. Style-biblioteket ligger i […]

Formater tall i tusenvis og millioner i Excel-rapporter

Formater tall i tusenvis og millioner i Excel-rapporter

Ikke overveld publikum med gigantiske tall. I Microsoft Excel kan du forbedre lesbarheten til dashbordene og rapportene dine ved å formatere tallene dine slik at de vises i tusenvis eller millioner.

Hvordan dele og følge SharePoint-nettsteder

Hvordan dele og følge SharePoint-nettsteder

Lær hvordan du bruker SharePoints sosiale nettverksverktøy som lar enkeltpersoner og grupper kommunisere, samarbeide, dele og koble til.

Hvordan konvertere datoer til julianske formater i Excel

Hvordan konvertere datoer til julianske formater i Excel

Julianske datoer brukes ofte i produksjonsmiljøer som et tidsstempel og hurtigreferanse for et batchnummer. Denne typen datokoding lar forhandlere, forbrukere og serviceagenter identifisere når et produkt ble laget, og dermed alderen på produktet. Julianske datoer brukes også i programmering, militæret og astronomi. Forskjellig […]

Hvordan lage en Access Web App

Hvordan lage en Access Web App

Du kan lage en nettapp i Access 2016. Så hva er en nettapp egentlig? Vel, nettet betyr at det er online, og appen er bare en forkortelse for "applikasjon". En Custom Web App er en online databaseapplikasjon som du får tilgang til fra skyen ved hjelp av en nettleser. Du bygger og vedlikeholder nettappen i skrivebordsversjonen […]

Hurtigstartlinje i SharePoint 2010

Hurtigstartlinje i SharePoint 2010

De fleste sidene i SharePoint 2010 viser en liste over navigasjonskoblinger på hurtigstartlinjen langs venstre side av siden. Hurtigstartlinjen viser koblinger til innhold på nettstedet som lister, biblioteker, nettsteder og publiseringssider. Hurtigstartlinjen inneholder to svært viktige lenker: Linken for alt nettstedinnhold: […]

Hva betyr løserfeilmeldingene i Excel?

Hva betyr løserfeilmeldingene i Excel?

For enkle problemer finner Solver i Excel vanligvis raskt de optimale Solver-variabelverdiene for objektivfunksjonen. Men i noen tilfeller har Solver problemer med å finne Solver-variabelverdiene som optimerer objektivfunksjonen. I disse tilfellene viser Solver vanligvis en melding eller en feilmelding som beskriver eller diskuterer problemet som […]