Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Variabler och datatyper | VBA-Grunder
Excel VBA för affärsautomatisering

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

  1. I Section_2_VBA_Fundamentals.xlsm, skriv en Sub som deklarerar en String-variabel för ett produktnamn, en Double för dess pris och en Integer för dess lager.
  2. Tilldela dem värdena för USB-C Hub genom att skriva in de faktiska värdena.
  3. Använd MsgBox för att visa alla tre i ett meddelande, sammanfogade tillsammans.
  4. Lägg till Const LOW_STOCK As Integer = 20 ovanför din Sub och använd den i en MsgBox för att jämföra med lagervariabeln.
Tips
expand arrow
  1. Du behöver tre Dim-rader med olika typer — titta tillbaka på Figur 2.1 om du glömmer syntaxen: Dim name As Type.
  2. USB-C Hub har raden Pris 39.50, Lager 44. Tilldela dessa direkt: price = 39.50.
  3. Sammanfogning görs med &, inte +. Bygg strängen i delar: "Name: " & productName & ", Price: " & price.
  4. Konstanter deklareras utanför någon Sub, högst upp i modulen, direkt efter Option Explicit. Jämför stockCount med LOW_STOCK med ett vanligt > eller < i en MsgBox-sträng — du behöver inte använda If än, visa bara båda värdena så att du kan jämföra dem visuellt.
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 1

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 2. Kapitel 1
some-alt