Variabler och datatyper
Svep för att visa menyn
Varje procedur du skriver behöver någonstans att lagra värden medan den körs — ett kundnamn, en löpande summa, en ja/nej-flagga. Det är vad en variabel är: en märkt låda i minnet där du kan lägga in ett värde och läsa tillbaka det senare. Du skapar en med Dim (förkortning för "dimension"), och du talar om för VBA i förväg vilken typ av värde den ska hålla:
Dim productName As String
Dim currentStock As Integer
Dim unitPrice As Double
Varje rad reserverar en märkt plats: productName kan bara innehålla text, currentStock endast heltal, unitPrice endast tal med decimaler. Att deklarera typen i förväg är inte byråkrati för sakens skull — det gör att VBA kan fånga misstag innan de blir buggar. Försök köra productName = 47 och VBA stoppar dig direkt med ett typfel, istället för att tyst lagra något felaktigt och skapa förvirring senare.
Vanliga datatyper
En tumregel: använd Long istället för Integer för räknare och radnummer — det är inte långsammare i moderna Excel och det blir inte överspill på stora datamängder. Du kommer att se Dim i As Long överallt i denna kurs.
Option Explicit
Placera denna enda rad allra högst upp i varje modul, före någon Sub. Det ändrar en sak: VBA vägrar nu köra någon rad som använder en variabel du inte har deklarerat med Dim först:
Option Explicit
Sub Example()
Dim total As Double
total = 100 ' works — declared above
toatl = 200 ' typo — Option Explicit catches this at compile time
End Sub
Utan Option Explicit skapar det stavfelet tyst en helt ny variabel som heter total, och du skulle undra i tjugo minuter varför total aldrig ändras. Denna enkla vana förhindrar fler buggar än något annat i detta kapitel.
Konstanter
Konstanter är namngivna värden som aldrig ändras medan koden körs — perfekt för saker som skattesatser eller tröskelvärden:
Const REORDER_THRESHOLD As Integer = 20
Att använda REORDER_THRESHOLD istället för att skriva 20 överallt innebär att om affärsregeln ändras, redigerar du en rad istället för att leta igenom hela din kod.
Uppgift
- I
Section_2_VBA_Fundamentals.xlsm, skriv enSubsom deklarerar enString-variabel för ett produktnamn, enDoubleför dess pris och enIntegerför dess lager. - Tilldela dem värdena för
USB-C Hubgenom att skriva in de faktiska värdena. - Använd
MsgBoxför att visa alla tre i ett meddelande, sammanfogade tillsammans. - Lägg till
Const LOW_STOCK As Integer = 20ovanför dinSuboch använd den i enMsgBoxför att jämföra med lagervariabeln.
- Du behöver tre
Dim-rader med olika typer — titta tillbaka på Figur 2.1 om du glömmer syntaxen:Dim name As Type. - USB-C Hub har raden Pris 39.50, Lager 44. Tilldela dessa direkt:
price = 39.50. - Sammanfogning görs med
&, inte+. Bygg strängen i delar:"Name: " & productName & ", Price: " & price. - Konstanter deklareras utanför någon
Sub, högst upp i modulen, direkt efterOption Explicit. JämförstockCountmedLOW_STOCKmed ett vanligt>eller<i enMsgBox-sträng — du behöver inte användaIfän, visa bara båda värdena så att du kan jämföra dem visuellt.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal