Variabler og datatyper
Sveip for å vise menyen
Hver prosedyre du skriver trenger et sted å lagre verdier mens den kjører — for eksempel et kundenavn, en løpende sum, eller et ja/nei-flagg. Det er det en variabel er: en merket boks i minnet som du kan legge inn en verdi i og hente ut senere. Du oppretter en med Dim (kort for "dimension"), og du forteller VBA på forhånd hva slags type den skal inneholde:
Dim productName As String
Dim currentStock As Integer
Dim unitPrice As Double
Hver linje reserverer en merket plass: productName kan kun inneholde tekst, currentStock kun hele tall, unitPrice kun tall med desimaler. Å deklarere typen på forhånd er ikke byråkrati for byråkratiets skyld — det gjør at VBA kan fange opp feil før de blir til bugs. Prøver du å kjøre productName = 47 stopper VBA deg umiddelbart med en typefeil, i stedet for å lagre noe feil og skape forvirring senere.
Vanlige datatyper
Tommelregel: bruk Long i stedet for Integer for tellere og radnumre — det er ikke tregere i moderne Excel, og du unngår overløp på store datasett. Du vil se Dim i As Long overalt i dette kurset.
Option Explicit
Legg denne ene linjen helt øverst i hver modul, før noen Sub. Den endrer én ting: VBA vil nå nekte å kjøre en linje som bruker en variabel du ikke har deklarert 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
Uten Option Explicit vil denne skrivefeilen stille opprette en helt ny variabel kalt total, og du kan bruke tjue minutter på å lure på hvorfor total aldri endrer seg. Denne ene vanen forhindrer flere feil enn noe annet i dette kapittelet.
Konstanter
Konstanter er navngitte verdier som aldri endres mens koden kjører — perfekt for ting som skattesatser eller terskelverdier:
Const REORDER_THRESHOLD As Integer = 20
Å bruke REORDER_THRESHOLD i stedet for å skrive 20 overalt betyr at hvis forretningsregelen endres, redigerer du én linje i stedet for å lete gjennom hele koden.
Oppgave
- I
Section_2_VBA_Fundamentals.xlsm, skriv enSubsom deklarerer enString-variabel for produktnavn, enDoublefor pris, og enIntegerfor lagerbeholdning. - Tildel dem verdiene for
USB-C Hubved å skrive inn de faktiske verdiene. - Bruk
MsgBoxtil å vise alle tre i én melding, sammenkoblet. - Legg til
Const LOW_STOCK As Integer = 20over dinSubog bruk den i enMsgBoxfor å sammenligne med lagerbeholdningsvariabelen.
- Du trenger tre
Dim-linjer med ulike typer — se tilbake på figur 2.1 hvis du har glemt syntaksen:Dim name As Type. - USB-C Hub sin rad har pris 39.50, lager 44. Bare tildel disse direkte:
price = 39.50. - Sammenkobling bruker
&, ikke+. Bygg opp strengen i deler:"Name: " & productName & ", Price: " & price. - Konstanter deklareres utenfor enhver
Sub, øverst i modulen, rett etterOption Explicit. SammenlignstockCountmedLOW_STOCKmed vanlig>eller<inne i enMsgBox-streng — du trenger ikke enIfennå, bare vis begge verdiene slik at du kan sammenligne dem visuelt.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Variabler og datatyper
Hver prosedyre du skriver trenger et sted å lagre verdier mens den kjører — for eksempel et kundenavn, en løpende sum, eller et ja/nei-flagg. Det er det en variabel er: en merket boks i minnet som du kan legge inn en verdi i og hente ut senere. Du oppretter en med Dim (kort for "dimension"), og du forteller VBA på forhånd hva slags type den skal inneholde:
Dim productName As String
Dim currentStock As Integer
Dim unitPrice As Double
Hver linje reserverer en merket plass: productName kan kun inneholde tekst, currentStock kun hele tall, unitPrice kun tall med desimaler. Å deklarere typen på forhånd er ikke byråkrati for byråkratiets skyld — det gjør at VBA kan fange opp feil før de blir til bugs. Prøver du å kjøre productName = 47 stopper VBA deg umiddelbart med en typefeil, i stedet for å lagre noe feil og skape forvirring senere.
Vanlige datatyper
Tommelregel: bruk Long i stedet for Integer for tellere og radnumre — det er ikke tregere i moderne Excel, og du unngår overløp på store datasett. Du vil se Dim i As Long overalt i dette kurset.
Option Explicit
Legg denne ene linjen helt øverst i hver modul, før noen Sub. Den endrer én ting: VBA vil nå nekte å kjøre en linje som bruker en variabel du ikke har deklarert 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
Uten Option Explicit vil denne skrivefeilen stille opprette en helt ny variabel kalt total, og du kan bruke tjue minutter på å lure på hvorfor total aldri endrer seg. Denne ene vanen forhindrer flere feil enn noe annet i dette kapittelet.
Konstanter
Konstanter er navngitte verdier som aldri endres mens koden kjører — perfekt for ting som skattesatser eller terskelverdier:
Const REORDER_THRESHOLD As Integer = 20
Å bruke REORDER_THRESHOLD i stedet for å skrive 20 overalt betyr at hvis forretningsregelen endres, redigerer du én linje i stedet for å lete gjennom hele koden.
Oppgave
- I
Section_2_VBA_Fundamentals.xlsm, skriv enSubsom deklarerer enString-variabel for produktnavn, enDoublefor pris, og enIntegerfor lagerbeholdning. - Tildel dem verdiene for
USB-C Hubved å skrive inn de faktiske verdiene. - Bruk
MsgBoxtil å vise alle tre i én melding, sammenkoblet. - Legg til
Const LOW_STOCK As Integer = 20over dinSubog bruk den i enMsgBoxfor å sammenligne med lagerbeholdningsvariabelen.
- Du trenger tre
Dim-linjer med ulike typer — se tilbake på figur 2.1 hvis du har glemt syntaksen:Dim name As Type. - USB-C Hub sin rad har pris 39.50, lager 44. Bare tildel disse direkte:
price = 39.50. - Sammenkobling bruker
&, ikke+. Bygg opp strengen i deler:"Name: " & productName & ", Price: " & price. - Konstanter deklareres utenfor enhver
Sub, øverst i modulen, rett etterOption Explicit. SammenlignstockCountmedLOW_STOCKmed vanlig>eller<inne i enMsgBox-streng — du trenger ikke enIfennå, bare vis begge verdiene slik at du kan sammenligne dem visuelt.
Takk for tilbakemeldingene dine!