Variabler spelar en stor roll i de flesta Excel-makron du stöter på. Du kan tänka på variabler som minnesbehållare som du kan använda i dina procedurer. Det finns olika typer av variabler, var och en har till uppgift att hålla en specifik typ av data.
Följande är några av de vanligaste typerna av variabler som du kommer att se:
-
Sträng: Innehåller textdata
-
Heltal: Innehåller numeriska data från –32 768 till 32 767
-
Lång: Innehåller numeriska data från –2 147 483 648 till 2 147 483 647
-
Dubbel: Håller flyttalsdata
-
Variant: Håller alla typer av data
-
Boolean: Innehåller binär data som returnerar True eller False
-
Objekt: Håller ett objekt från Excel-objektmodellen
När du skapar en variabel i ett makro deklarerar du en variabel . Det gör du genom att ange Dim (förkortning för dimension), sedan namnet på din variabel och sedan typen. Till exempel:
Dim MinText som sträng
Dim MyNumber som heltal
Dim MyWorksheet som arbetsblad
När du har skapat din variabel kan du fylla den med data. Här är några enkla exempel på hur du kan skapa en variabel och sedan tilldela den värden:
Dim MinText som sträng
MyText = Range("A1").Värde
Dim MyNumber som heltal
MyNumber = Range("B1").Värde * 25
Dim MyObject som arbetsblad
Ställ in MyWorksheet = Sheets("Sheet1")
Värdena du tilldelar dina variabler kommer ofta från data som lagras i dina celler. Värdena kan dock också vara information som du skapar. Allt beror på uppgiften. Denna uppfattning kommer att bli tydligare när du går igenom makron i den här boken.
Även om det är möjligt att skapa kod som inte använder variabler, kommer du att stöta på många exempel på VBA-kod där variablerna är anställda. Det finns två huvudorsaker till detta.
För det första vet Excel inte i sig vad dina data används till. Den ser inte siffror, symboler eller bokstäver. Den ser bara data. När du deklarerar variabler med specifika datatyper hjälper du Excel att veta hur det ska hantera vissa delar av data så att dina makron ger de resultat du kan förvänta dig.
För det andra hjälper variabler genom att göra din kod mer effektiv och lättare att förstå. Anta till exempel att du har ett nummer i cell A1 som du upprepade gånger hänvisar till i ditt makro. Du kan hämta det numret genom att peka på cell A1 varje gång du behöver det:
Sub Macro1()
Range("B1").Value = Range("A1").Värde * 5
Range("C1").Value = Range("A1").Värde * 10
Range("D1").Value = Range("A1").Värde * 15
Avsluta Sub
Detta makro skulle dock tvinga Excel att slösa bort cykler som lagrar samma nummer i minnet varje gång du pekar på cell A1. Dessutom, om du behöver ändra din arbetsbok så att målnumret inte finns i cell A1, utan i, säg, cell A2, skulle du behöva redigera din kod genom att ändra alla referenser från A1 till A2.
Ett bättre sätt är att lagra numret i cell A1 bara en gång. Du kan till exempel lagra värdet i cell A1 i en heltalsvariabel som heter myValue:
Sub WithVariable()
Dim myValue As Integer
mittValue = Range("A1").Value
Range("C3").Value = myValue * 5
Range("D5").Value = myValue * 10
Range("E7").Value = myValue * 15
Avsluta Sub
Det här tillvägagångssättet förbättrar inte bara effektiviteten i din kod (genom att Excel läser numret i cell A1 bara en gång) utan säkerställer också att du bara behöver redigera en rad om utformningen av din arbetsbok skulle ändras.