Excels standard opptaksmodus er absolutt referanse. Når en cellereferanse i en formel er en absolutt referanse , justeres den ikke automatisk når formelen limes inn på en ny plassering.
Den beste måten å forstå hvordan dette konseptet gjelder for makroer, er å prøve det ut. Ta opp en makro som teller radene i et regneark. (Se figuren for et eksempel.)
Ditt forskrevne regnearket inneholder to tabeller.
Du kan finne eksempeldatasettet som er brukt her på nettet .
Følg disse trinnene for å ta opp makroen:
Sørg for at celle A1 er valgt.
På Utvikler-fanen velger du Spill inn makro.
Gi makroen et navn AddTotal.
Velg denne arbeidsboken for lagringsstedet.
Klikk OK for å starte opptaket.
På dette tidspunktet registrerer Excel handlingene dine.
Mens Excel tar opp, velg celle A16 og skriv inn Total i cellen.
Velg den første tomme cellen i kolonne D (D16) og skriv inn = COUNTA(D2:D15).
Denne formelen gir en telling av grennummer nederst i kolonne D. Du bruker COUNTA-funksjonen fordi grentallene er lagret som tekst.
Klikk Stopp opptak på Utvikler-fanen for å stoppe opptak av makroen.
Ditt post-totalte regnearket.
Det formaterte regnearket skal se ut som det som vises her.
For å se makroen din i aksjon, slett Total-raden du nettopp la til og spill av makroen ved å følge disse trinnene:
På Utvikler-fanen velger du Makroer.
Finn og velg AddTotal-makroen du nettopp spilte inn.
Klikk på Kjør-knappen.
Hvis alt går bra, spiller makroen av handlingene dine til en T og gir bordet ditt en total. Nå er saken her. Uansett hvor hardt du prøver, kan du ikke få AddTotal-makroen til å fungere på det andre bordet. Hvorfor? Fordi du tok det opp som en absolutt makro.
For å forstå hva dette betyr, undersøk den underliggende koden ved å velge Makroer på Utvikler-fanen. Dialogboksen Makro vises.
Dialogboksen Excel Macro.
Velg AddTotal-makroen og klikk på Rediger-knappen. Visual Basic Editor åpner og viser koden som ble skrevet da du spilte inn makroen:
Sub AddTotal()
Range("A16"). Velg
ActiveCell.FormulaR1C1 = "Totalt"
Range("D16"). Velg
ActiveCell.FormulaR1C1 = "=COUNTA(R[-14]C:R[-1]C)"
End Sub
Vær spesielt oppmerksom på de to kodelinjene som velger område A16 og område D16. Fordi makroen ble registrert i absolutt referansemodus, tolket Excel området ditt som absolutte cellereferanser. Med andre ord, uansett hvor markøren er i arbeidsboken din, når du kjører den innspilte makroen, vil Excel velge celle A16 og deretter celle D16. I neste avsnitt tar du en titt på hvordan den samme makroen ser ut når den er tatt opp i relativ referansemodus.