Variabler og Datatyper
Stryg for at vise menuen
Hver procedure, du skriver, har brug for et sted at gemme værdier, mens den arbejder — et kundenavn, en løbende total, et ja/nej-flag. Det er, hvad en variabel er: en mærket boks i hukommelsen, som du kan lægge en værdi i og læse tilbage senere. Du opretter en med Dim (forkortelse for "dimension"), og du fortæller VBA på forhånd, hvilken slags ting den skal indeholde:
Dim productName As String
Dim currentStock As Integer
Dim unitPrice As Double
Hver linje reserverer en mærket plads: productName kan kun indeholde tekst, currentStock kun hele tal, unitPrice kun tal med decimaler. At erklære typen på forhånd er ikke bureaukrati for bureaukratiets skyld — det er det, der gør det muligt for VBA at fange fejl, før de bliver til bugs. Prøv at køre productName = 47, og VBA stopper dig straks med en typefejl, i stedet for lydløst at gemme noget forkert og skabe forvirring senere.
Almindelige datatyper
En tommelfingerregel: brug Long i stedet for Integer til tællere og rækkenumre — det er ikke langsommere i moderne Excel, og det løber ikke tør for plads ved store datasæt. Du vil se Dim i As Long overalt i dette kursus.
Option Explicit
Sæt denne ene linje helt øverst i hvert modul, før nogen Sub. Det ændrer én ting: VBA vil nu nægte at køre nogen linje, der bruger en variabel, du ikke først har erklæret med Dim:
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
Uden Option Explicit opretter den tastefejl lydløst en helt ny variabel kaldet total, og du ville bruge tyve minutter på at undre dig over, hvorfor total aldrig ændrer sig. Denne ene vane forhindrer flere fejl end noget andet i dette kapitel.
Konstanter
Konstanter er navngivne værdier, der aldrig ændrer sig, mens koden kører — perfekt til ting som skattesatser eller tærskelværdier:
Const REORDER_THRESHOLD As Integer = 20
At bruge REORDER_THRESHOLD i stedet for at skrive 20 overalt betyder, at hvis forretningsreglen ændres, redigerer du én linje i stedet for at skulle lede gennem hele din kode.
Opgave
- I
Section_2_VBA_Fundamentals.xlsmskal du skrive enSub, der erklærer enString-variabel til et produktnavn, enDoubletil prisen og enIntegertil lagerbeholdningen. - Tildel dem værdierne for
USB-C Hubved at indtaste de konkrete værdier. - Brug
MsgBoxtil at vise alle tre i én besked, sammenkædet. - Tilføj
Const LOW_STOCK As Integer = 20over dinSubog brug den i enMsgBox, hvor du sammenligner den med lager-variablen.
- Du skal bruge tre
Dim-linjer med forskellige typer — se tilbage på Figur 2.1, hvis du har glemt syntaksen:Dim name As Type. - USB-C Hub's række har Price 39.50, Stock 44. Tildel disse direkte:
price = 39.50. - Sammenkædning bruger
&, ikke+. Byg strengen op i dele:"Name: " & productName & ", Price: " & price. - Konstanter erklæres udenfor enhver
Sub, øverst i modulet, lige efterOption Explicit. SammenlignstockCountmedLOW_STOCKmed et almindeligt>eller<inde i enMsgBox-streng — du behøver ikke enIfendnu, bare vis begge værdier, så du kan sammenligne dem visuelt.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat