Variabler spiller en stor rolle i de fleste av Excel-makroene du møter. Du kan tenke på variabler som minnebeholdere som du kan bruke i prosedyrene dine. Det finnes forskjellige typer variabler, som hver har til oppgave å holde en bestemt type data.
Følgende er noen av de vanlige typene variabler du vil se:
-
String: Inneholder tekstdata
-
Heltall: Inneholder numeriske data fra –32 768 til 32 767
-
Lang: Inneholder numeriske data fra –2.147.483.648 til 2.147.483.647
-
Dobbel: Inneholder numeriske flyttallsdata
-
Variant: Holder alle typer data
-
Boolsk: Inneholder binære data som returnerer True eller False
-
Objekt: Holder et objekt fra Excel-objektmodellen
Når du oppretter en variabel i en makro, erklærer du en variabel . Det gjør du ved å skrive inn Dim (forkortelse for dimensjon), deretter navnet på variabelen din, og deretter typen. For eksempel:
Demp MyText som streng
Dim MyNumber som heltall
Dim MyWorksheet som regneark
Etter at du har opprettet variabelen din, kan du fylle den med data. Her er noen enkle eksempler på hvordan du kan lage en variabel, og deretter tilordne verdier til den:
Demp MyText som streng
MyText = Range("A1"). Verdi
Dim MyNumber som heltall
MyNumber = Range("B1"). Verdi * 25
Dim MyObject som regneark
Sett MyWorksheet = Sheets("Sheet1")
Verdiene du tildeler variablene dine kommer ofte fra data som er lagret i cellene dine. Verdiene kan imidlertid også være informasjon du oppretter. Alt avhenger av oppgaven. Denne forestillingen vil bli klarere etter hvert som du går gjennom makroene i denne boken.
Selv om det er mulig å lage kode som ikke bruker variabler, vil du møte mange eksempler på VBA koden der variablene er ansatt. Det er to hovedårsaker til dette.
For det første vet ikke Excel i seg selv hva dataene dine brukes til. Den ser ikke tall, symboler eller bokstaver. Den ser bare data. Når du deklarerer variabler med spesifikke datatyper, hjelper du Excel med å vite hvordan det skal håndtere visse datastykker, slik at makroene dine gir de resultatene du forventer.
For det andre hjelper variabler ved å gjøre koden din mer effektiv og lettere å forstå. Anta for eksempel at du har et tall i celle A1 som du gjentatte ganger refererer til i makroen. Du kan hente det nummeret ved å peke på celle A1 hver gang du trenger det:
Sub Makro1()
Område("B1"). Verdi = Område("A1"). Verdi * 5
Område("C1"). Verdi = Område("A1"). Verdi * 10
Område("D1"). Verdi = Område("A1"). Verdi * 15
End Sub
Imidlertid vil denne makroen tvinge Excel til å kaste bort sykluser som lagrer det samme nummeret i minnet hver gang du peker på celle A1. Dessuten, hvis du trenger å endre arbeidsboken slik at målnummeret ikke er i celle A1, men i for eksempel celle A2, må du redigere koden ved å endre alle referansene fra A1 til A2.
En bedre måte er å lagre nummeret i celle A1 bare én gang. For eksempel kan du lagre verdien i celle A1 i en heltallsvariabel kalt myValue:
Sub WithVariable()
Dim myValue As Integer
minVerdi = Område("A1"). Verdi
Range("C3"). Verdi = minverdi * 5
Range("D5"). Verdi = minverdi * 10
Range("E7"). Verdi = minverdi * 15
End Sub
Denne tilnærmingen forbedrer ikke bare effektiviteten til koden din (sikker på at Excel leser tallet i celle A1 bare én gang), men sikrer også at du bare trenger å redigere én linje dersom utformingen av arbeidsboken endres.