📅 14 dagar ångerrätt | 🔃 Byt kurs när du vill | 🔒 Säker betalning & snabb support

Kategori Del Vad det betyder Syntax / Exempel Exempelutdata / resultat
GrunderOption ExplicitTvingar deklaration av variabler; förhindrar att stavfel blir nya variabler.Option Explicit (överst i modulen)Kompileringsfel om odeklarerad variabel används
GrunderSubProcedur (makro). Utför åtgärder, returnerar inget värde.Sub Hello(): Debug.Print "Hej": End SubOmedelbarfönster: Hej
GrunderFunctionReturnerar ett värde; kan användas i formler eller kod.Function Add(a As Long,b As Long) As Long: Add=a+b: End FunctionAdd(2,3)5
GrunderKommentarerFörklarar koden; ignoreras av VBA.' kommentar eller Debug.Print x ' inlineIngen körningseffekt
GrunderRadbrytning (fortsättning)Fortsätt en sats på nästa rad.Debug.Print "A" & _
"B"
AB
GrunderSatsavskiljareFlera satser på en rad.Dim x As Long: x=5: Debug.Print x5
VariablerDimDeklarerar en variabel (räckvidd beror på var den används).Dim n As LongSkapar variabeln n
VariablerConstDeklarerar en konstant (kan inte ändras).Const TAX As Double = 0.24Oföränderligt värde
VariablerVanliga typerLong heltal, Double decimaltal, Currency pengar, String text, Boolean, Date, Variant, Object.Dim price As Double
Dim name As String
Typen styr lagring/beteende
VariablerTilldelning (=)Tilldelar värden till värdetyper.x = 10
name = "Ana"
x blir 10
VariablerSetTilldelar objektreferenser (krävs för objekt).Set ws = ThisWorkbook.Worksheets("Sheet1")ws pekar på Sheet1
VariablerNothingBetyder “ingen objektreferens”. Jämför med Is.If ws Is Nothing Then Debug.Print "saknas"saknas om inte satt
Operatorer+Addition (tal).Debug.Print 5 + 27
OperatorerSubtraktion / negation.Debug.Print 5 - 23
Operatorer*Multiplikation.Debug.Print 5 * 210
Operatorer/Division (flyttalsresultat).Debug.Print 5 / 22.5
Operatorer\Heltalsdivision (slänger resten).Debug.Print 5 \ 22
OperatorerModRest vid division.Debug.Print 5 Mod 21
Operatorer^Potens (exponent).Debug.Print 2 ^ 38
Operatorer&Strängsammanfogning (föredras framför +).Debug.Print "Hej " & "VBA"Hej VBA
Jämförelse=Lika med (returnerar Boolean).Debug.Print (5 = 5)True
Jämförelse<>Inte lika med.Debug.Print (5 <> 4)True
Jämförelse<Mindre än.Debug.Print (3 < 10)True
Jämförelse>Större än.Debug.Print (10 > 3)True
Jämförelse<=Mindre än eller lika med.Debug.Print (3 <= 3)True
Jämförelse>=Större än eller lika med.Debug.Print (3 >= 10)False
LogikAndSant om båda sidorna är sanna.Debug.Print (5>3 And 2<4)True
LogikOrSant om minst en sida är sann.Debug.Print (5>3 Or 2>4)True
LogikNotVänder True↔False.Debug.Print Not (5=5)False
LogikXorSant om exakt en sida är sann.Debug.Print (True Xor True)False
LogikIsJämför objektidentitet (och Is Nothing).Debug.Print (ws Is Nothing)True/False
StyrflödeIf…ThenKör blocket endast om villkoret är True.If x>10 Then Debug.Print "Stort"Stort (om x>10)
StyrflödeIf…ElseTvåvägsval.If x>10 Then Debug.Print "Stort" Else Debug.Print "Litet"Stort eller Litet
StyrflödeElseIfFlerval med flera villkor.If x>10 Then ... ElseIf x=10 Then ... Else ... End IfEn gren körs
StyrflödeSelect CaseRent flerval baserat på ett uttryck.Select Case x
Case 1: Debug.Print "Ett"
Case 2 To 5: Debug.Print "2–5"
Case Else: Debug.Print "Annat"
End Select
Skriver ut matchande text
StyrflödeGoToHoppar till en etikett (använd mest för felhantering).GoTo Hoppa
Debug.Print "A"
Hoppa: Debug.Print "B"
Skriver bara B
LooparFor…NextRäkneloop.For i=1 To 3: Debug.Print i: Next1 2 3
LooparStepÄndrar steglängd i For-loop.For i=10 To 2 Step -2: Debug.Print i: Next10 8 6 4 2
LooparFor EachLoopar igenom objekt i en samling (Range, Sheets, osv.).For Each ws In ThisWorkbook.Worksheets: Debug.Print ws.Name: NextSkriver ut alla bladnamn
LooparDo While…LoopLoopar så länge villkoret är True.Do While x<3: x=x+1: Loopx slutar på 3
LooparDo Until…LoopLoopar tills villkoret blir True.Do Until x=3: x=x+1: Loopx slutar på 3
LooparExit For / Exit DoAvslutar loopen direkt.If i=5 Then Exit ForLoop slutar i förtid
ProcedurerExit Sub / Exit FunctionLämnar proceduren direkt.If fel Then Exit SubMakrot/funktionen avbryts
ParametrarByRefSkickar variabeln som referens (standard). Funktionen kan ändra originalet.Sub Inc(ByRef n As Long): n=n+1: End Subn ändras
ParametrarByValSkickar en kopia. Funktionen kan inte ändra originalet.Sub Inc(ByVal n As Long): n=n+1: End SubUppringaren oförändrad
ParametrarOptionalParametern kan utelämnas; standardvärde används.Sub Hälsa(Optional vem As String="Världen")Hälsa → Hej Världen
ParametrarParamArrayTar emot valfritt antal argument (som array).Function SumAll(ParamArray nums()): ... End FunctionSumAll(1,2,3) → 6
ArrayerFast arrayStorlek bestäms vid deklaration.Dim a(1 To 3) As LongIndex 1..3
ArrayerDynamisk arrayStorlek bestäms vid körning med ReDim.Dim a() As Long: ReDim a(1 To 5)Index 1..5
ArrayerReDim PreserveÄndrar storlek men behåller värden (bara sista dimensionen kan ändras).ReDim Preserve a(1 To 10)Gamla värden behålls
ArrayerLBound/UBoundGer lägsta/högsta index.Debug.Print LBound(a), UBound(a)t.ex. 1 10
SträngarLenSträngens längd.Debug.Print Len("Hello")5
SträngarLeft/RightTar vänster/höger tecken.Debug.Print Left("Hello",2)He
SträngarMidTar delsträng från position.Debug.Print Mid("Hello",2,3)ell
SträngarUCase/LCaseVersaler / gemener.Debug.Print UCase("Hi")HI
SträngarTrimTar bort inledande/avslutande mellanslag.Debug.Print Trim(" hi ")hi
SträngarReplaceErsätter förekomster av deltext.Debug.Print Replace("a-b","-","_")a_b
SträngarInStrHittar position (0 om ej hittad).Debug.Print InStr(1,"banana","na")3
SträngarSplit/JoinSplittrar text till array / sammanfogar array till text.parts=Split("a,b,c",",")
Debug.Print Join(parts,"|")
a|b|c
KonverteringCInt/CLng/CDblKonvertera till Integer/Long/Double.Debug.Print CLng(3.9)Ofta 4 (bankers rounding kan gälla)
KonverteringCStrKonvertera till String.Debug.Print CStr(123)123
MatteInt / FixInt avrundar nedåt (mot -∞). Fix kapar mot 0.Debug.Print Int(-3.9)
Debug.Print Fix(-3.9)
-4 och -3
MatteRoundAvrundar (VBA använder bankers rounding).Debug.Print Round(2.5,0)2
MatteAbs/SqrAbsolutvärde / kvadratrot.Debug.Print Abs(-5)
Debug.Print Sqr(9)
5, 3
SlumpRandomize/RndSeedar slump / slump-tal 0..1.Randomize: Debug.Print Rndt.ex. 0.4832
FormateringFormatFormaterar tal/datum till text.Debug.Print Format(1234.5,"#,##0.00")1,234.50
Datum/TidDate/Time/NowAktuellt datum, tid eller båda.Debug.Print Date
Debug.Print Time
Debug.Print Now
Beror på nuvarande tidpunkt
Datum/TidDateAddLägger till ett intervall på datum/tid.Debug.Print DateAdd("d",7,Date)Datum + 7 dagar
Datum/TidDateDiffSkillnad mellan datum i ett intervall.Debug.Print DateDiff("d",Date,DateAdd("m",1,Date))Dagar tills +1 månad
FelhanteringOn Error GoToSkickar fel till en hanterare (etikett).On Error GoTo EH
x=1/0
Exit Sub
EH: Debug.Print Err.Number, Err.Description
11 Division med noll
FelhanteringOn Error Resume NextIgnorerar körfel och fortsätter (använd försiktigt).On Error Resume Next
Kill "C:\nope.txt"
On Error GoTo 0
Ingen krasch; kontrollera Err
FelhanteringOn Error GoTo 0Stänger av aktuell felhanterare.On Error GoTo 0Normal felhantering igen
FelsökningDebug.PrintSkriver till Omedelbarfönstret (Ctrl+G).Debug.Print "x=", xVisar värde
FelsökningDebug.AssertStoppar i debug om villkoret är False.Debug.Assert x > 0Stoppar om x ≤ 0 (i debug)
FelsökningStopTvingar en paus (som en breakpoint).StopKörning pausar
ExcelThisWorkbookArbetsboken som innehåller VBA-projektet.Set wb = ThisWorkbookStabil referens
ExcelActiveWorkbookArbetsboken som är aktiv just nu (kan ändras oväntat).Set wb = ActiveWorkbookBeror på fokus
ExcelWorksheetEtt bladobjekt.Set ws = wb.Worksheets("Sheet1")ws.Name → Sheet1
ExcelRangeEn cell eller ett cellområde.ws.Range("A1").Value = "Hej"A1 blir “Hej”
ExcelCellsRad/kolumn-indexering till en cell.ws.Cells(1,2).Value = 10B1 blir 10
ExcelClearContentsTar bort värden/formler men behåller formatering.ws.Range("A1:B2").ClearContentsCeller töms
ExcelClearTar bort värden + formatering.ws.Range("A1:B2").ClearCeller återställs
ExcelCopy/PasteSpecialKopiera och klistra in med kontroll (värden, format, etc.).ws.Range("A1").Copy
ws.Range("B1").PasteSpecial xlPasteValues
B1 får endast värdet
ExcelAutoFitAutojusterar kolumner/rader.ws.Columns("A").AutoFitKolumn A passar innehåll
ExcelSista radenHittar sista använda raden i en kolumn.lastRow = ws.Cells(ws.Rows.Count,"A").End(xlUp).Rowt.ex. 128
ExcelCurrentRegionSammanhängande block runt en cell (som Ctrl+A-region).Set r = ws.Range("A1").CurrentRegionUtökar till datablock
ExcelUsedRangeAlla celler Excel tycker är använda (kan vara “smutsigt”).Set r = ws.UsedRangeTäcker “använt” område
PrestandaScreenUpdatingStäng av skärmuppdatering för snabbare körning.Application.ScreenUpdating = FalseSnabbare makron
PrestandaEnableEventsStäng av händelser för att undvika återtriggning.Application.EnableEvents = FalseUndviker event-loopar
PrestandaCalculationManuell beräkning för fart; återställ efteråt.Application.Calculation = xlCalculationManualStoppar autoberäkning
UIMsgBoxVisar en meddelanderuta.MsgBox "Klart!", vbInformation, "Status"Användaren ser dialog
UIInputBoxBer användaren om textinmatning.name = InputBox("Ditt namn?")Returnerar användarens text
FilerDirSnabb kontroll om fil finns (tom sträng om saknas).If Dir(p)<>"" Then Debug.Print "Finns"Finns / inget
FilerFreeFileHämtar ett ledigt filnummer för Open.f = FreeFilet.ex. 1
FilerOpen/Print#/CloseSkriver en enkel textfil.f=FreeFile
Open "C:\Temp\log.txt" For Output As #f
Print #f, "Hej"
Close #f
Filen innehåller “Hej”
SamlingarCollectionEnkel listbehållare (1-baserad indexering).Dim col As New Collection
col.Add "A": Debug.Print col(1)
A
SamlingarDictionaryNyckel/värde-lager (late bound).Set d=CreateObject("Scripting.Dictionary")
d.Add "cat",3
Debug.Print d("cat")
3
HändelserWorkbook_OpenKörs automatiskt när arbetsboken öppnas (i ThisWorkbook-modulen).Private Sub Workbook_Open()
MsgBox "Välkommen"
End Sub
Dialog vid öppning
HändelserWorksheet_ChangeKörs när celler ändras (i bladmodulen).Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("A:A")) Is Nothing Then Debug.Print "Kolumn A ändrad"
End Sub
Skriver ut vid ändring i kolumn A
StrukturerEnumNamngivna numeriska konstanter.Enum Status: stOk=1: stFail=0: End EnumMer läsbara tillstånd
StrukturerTypeAnvändardefinierad struktur (post).Type Person: Name As String: Age As Long: End TypeGrupperar fält
StilWithFörkortar upprepade objektreferenser.With ws.Range("A1")
.Value="Hej": .Font.Bold=True
End With
A1 sätts + fetstil