En relativ reference i en Excel-makro betyder i forhold til den aktuelt aktive celle. Så vær forsigtig med dit aktive cellevalg - både når du optager den relative referencemakro, og når du kører den.
Åbn først Sample File.xlsx tilgængelig online . Brug derefter følgende trin til at optage en relativ referencemakro:
På fanen Udvikler skal du vælge indstillingen Brug relative referencer.
Optagelse af en makro med relative referencer.
Sørg for, at celle A1 er valgt.
På fanen Udvikler skal du vælge Optag makro.
Navngiv makroen AddTotalRelative.
Vælg denne projektmappe for at gemme placeringen.
Klik på OK for at starte optagelsen.
Vælg celle A16 og skriv Total i cellen.
Vælg den første tomme celle i kolonne D (D16), og skriv = COUNTA(D2:D15).
Klik på Stop optagelse på fanen Udvikler for at stoppe optagelsen af makroen.
På dette tidspunkt har du optaget to makroer. Brug et øjeblik på at undersøge koden til din nyoprettede makro ved at vælge Makroer på fanen Udvikler for at åbne dialogboksen Makro. Vælg makroen AddTotalRelative, og klik på Rediger.
Igen åbner Visual Basic Editor og viser dig den kode, der blev skrevet, da du optog din makro. Denne gang ser din kode nogenlunde sådan ud:
Sub AddTotalRelative()
ActiveCell.Offset(15, 0).Range("A1").Vælg
ActiveCell.FormulaR1C1 = "I alt"
ActiveCell.Offset(0, 3).Range("A1").Vælg
ActiveCell.FormulaR1C1 = "=COUNTA(R[-14]C:R[-1]C)"
Slut Sub
Bemærk først, at koden ikke indeholder referencer til specifikke celleområder (andre end udgangspunktet, A1). Bemærk, at i denne makro bruger Excel egenskaben Offset for den aktive celle. Denne egenskab fortæller markøren at flytte et vist antal celler op eller ned og et vist antal celler til venstre eller højre.
I dette tilfælde fortæller forskydningsegenskabskoden Excel om at flytte 15 rækker ned og 0 kolonner på tværs af den aktive celle (A1). Fordi makroen blev optaget ved hjælp af relativ reference, vil Excel ikke eksplicit vælge en bestemt celle, som det gjorde, da den optog en absolut referencemakro.
For at se denne makro i aktion skal du slette rækken Total for begge tabeller og gøre følgende:
Vælg celle A1.
Vælg Makroer på fanen Udvikler.
Find og vælg makroen AddTotalRelative.
Klik på knappen Kør.
Vælg celle F1.
Vælg Makroer på fanen Udvikler.
Find og vælg makroen AddTotalRelative.
Klik på knappen Kør.
Bemærk, at denne makro, i modsætning til din tidligere makro, fungerer på begge datasæt. Da makroen anvender totalerne i forhold til den aktuelt aktive celle, anvendes totalerne korrekt.
For at denne makro skal virke, skal du blot sikre dig det
-
Du har valgt den korrekte startcelle, før du kører makroen.
-
Datablokken har det samme antal rækker og kolonner som de data, du optog makroen på.