Når du registrerer handlingene dine, registrerer Excel normalt absolutte referanser til celler. (Dette er standard opptaksmodus.) Men ganske ofte er dette feil opptaksmodus. Hvis du bruker absolutt opptaksmodus, registrerer Excel faktiske cellereferanser. Hvis du bruker relativ registrering, registrerer Excel relative referanser til celler. Fortsett å lese for å se forskjellen.
Opptak i absolutt modus
Følg disse trinnene for å ta opp en enkel makro i absolutt modus. Denne makroen skriver ganske enkelt inn tre måneders navn i et regneark:
Pass på at knappen Utvikler → Kode → Bruk relative referanser ikke er uthevet, og velg deretter Utvikler → Kode → Ta opp makro.
Skriv Absolutt som navn for denne makroen.
Klikk OK for å starte opptaket.
Aktiver celle B1, og skriv Jan i den cellen.
Flytt til celle C1, og skriv feb.
Flytt til celle D1, og skriv inn Mar.
Klikk celle B1 for å aktivere den igjen.
Stopp makroopptakeren.
Trykk Alt+F11 for å aktivere VBE.
Undersøk Module1-modulen.
Excel genererer følgende kode:
Sub Absolute()
'
' Absolutt makro
'
Range(“B1”).Velg
ActiveCell.FormulaR1C1 = "Jan"
Range(“C1”). Velg
ActiveCell.FormulaR1C1 = "Feb"
Range(“D1”).Velg
ActiveCell.FormulaR1C1 = "Mar"
Range(“B1”).Velg
End Sub
Når den utføres, velger denne makroen celle B1 og setter inn de tre månedsnavnene i området B1:D1. Deretter aktiverer makroen celle B1 på nytt.
De samme handlingene skjer uavhengig av hvilken celle som er aktiv når du kjører makroen. En makro registrert ved å bruke absolutte referanser gir alltid de samme resultatene når den utføres. I dette tilfellet legger makroen alltid inn navnene på de tre første månedene i området B1:D1 på det aktive regnearket.
Opptak i relativ modus
I noen tilfeller vil du at den innspilte makroen skal fungere med celleplasseringer på en relativ måte. Du vil kanskje at makroen skal begynne å skrive inn månedsnavnene i den aktive cellen. I et slikt tilfelle må du bruke relativ opptak.
Du kan endre måten Excel registrerer handlingene dine på ved å klikke på knappen Bruk relative referanser i Kode-gruppen i Utvikler-fanen. Denne knappen er en veksleknapp. Når knappen vises uthevet i en annen farge, er opptaksmodusen relativ. Når knappen vises normalt, tar du opp i absolutt modus.
Du kan endre opptaksmetoden når som helst, selv midt under opptaket.
For å se hvordan relativ modusopptak fungerer, slett innholdet i område B1:D1 og utfør deretter følgende trinn:
Aktiver celle B1.
Velg Utvikler → Kode → Spill inn makro.
Gi denne makroen et navn.
Klikk OK for å starte opptaket.
Klikk på knappen Bruk relative referanser for å endre opptaksmodus til relativ.
Når du klikker på denne knappen, endres den til en annen farge enn resten av båndet.
Skriv Jan i celle B1.
Flytt til celle C1, og skriv feb.
Flytt til celle D1, og skriv inn Mar.
Velg celle B1.
Stopp makroopptakeren.
Legg merke til at denne prosedyren skiller seg litt fra det forrige eksemplet. I dette eksemplet aktiverer du startcellen før du starter opptaket. Dette er et viktig trinn når du tar opp makroer som bruker den aktive cellen som base.
Denne makroen begynner alltid å skrive inn tekst i den aktive cellen. Prøv det. Flytt cellepekeren til en hvilken som helst celle og utfør deretter den relative makroen. Månedsnavnene legges alltid inn fra den aktive cellen.
Med opptaksmodus satt til relativ, er koden som Excel genererer ganske forskjellig fra koden som genereres i absolutt modus:
Sub relativ()
'
'Relativ makro
'
ActiveCell.FormulaR1C1 = "Jan"
ActiveCell.Offset(0, 1). Range(“A1”).Velg
ActiveCell.FormulaR1C1 = "Feb"
ActiveCell.Offset(0, 1). Range(“A1”).Velg
ActiveCell.FormulaR1C1 = "Mar"
ActiveCell.Offset(0, -2). Range(“A1”).Velg
End Sub
For å teste denne makroen, aktiver en hvilken som helst celle bortsett fra B1. Månedsnavnene legges inn i tre celler, som begynner med cellen du aktiverte.
Legg merke til at koden generert av makroopptakeren refererer til celle A1. Dette kan virke rart fordi du aldri brukte celle A1 under innspillingen av makroen. Dette er rett og slett et biprodukt av måten makroopptakeren fungerer på.