Pri zaznamenávaní vašich akcií Excel zvyčajne zaznamenáva absolútne odkazy na bunky. (Toto je predvolený režim nahrávania.) Ale dosť často je to nesprávny režim nahrávania. Ak používate režim absolútneho nahrávania, Excel zaznamená skutočné odkazy na bunky. Ak používate relatívne zaznamenávanie, Excel zaznamená relatívne odkazy na bunky. Pokračujte v čítaní, aby ste videli rozdiel.
Nahrávanie v absolútnom režime
Ak chcete zaznamenať jednoduché makro v absolútnom režime, postupujte podľa týchto krokov. Toto makro jednoducho zadá názvy troch mesiacov do pracovného hárka:
Uistite sa, že tlačidlo Vývojár → Kód → Použiť relatívne referencie nie je zvýraznené a potom vyberte Vývojár → Kód → Zaznamenať makro.
Ako názov tohto makra zadajte Absolute.
Kliknutím na tlačidlo OK spustíte nahrávanie.
Aktivujte bunku B1 a do bunky napíšte Jan.
Presuňte sa do bunky C1 a napíšte Feb.
Presuňte sa do bunky D1 a zadajte Mar.
Kliknutím na bunku B1 ju znova aktivujete.
Zastavte záznam makier.
Stlačením Alt+F11 aktivujte VBE.
Preskúmajte modul Module1.
Excel vygeneruje nasledujúci kód:
Sub Absolute()
'
Absolútne makro
'
Rozsah („B1“). Vyberte
ActiveCell.FormulaR1C1 = “Jan”
Rozsah („C1“). Vyberte
ActiveCell.FormulaR1C1 = “Feb”
Rozsah („D1“). Vyberte
ActiveCell.FormulaR1C1 = “Mar”
Rozsah („B1“). Vyberte
End Sub
Po spustení toto makro vyberie bunku B1 a vloží názvy troch mesiacov do rozsahu B1:D1. Potom makro znovu aktivuje bunku B1.
Tieto isté akcie sa vyskytnú bez ohľadu na to, ktorá bunka je aktívna pri spustení makra. Makro zaznamenané pomocou absolútnych odkazov vždy vytvára rovnaké výsledky, keď je spustené. V tomto prípade makro vždy zadáva názvy prvých troch mesiacov v rozsahu B1:D1 na aktívnom hárku.
Nahrávanie v relatívnom režime
V niektorých prípadoch chcete, aby zaznamenané makro pracovalo s umiestnením buniek relatívnym spôsobom. Možno budete chcieť, aby makro začalo zadávať názvy mesiacov do aktívnej bunky. V takom prípade musíte použiť relatívne nahrávanie.
Spôsob, akým Excel zaznamenáva vaše akcie, môžete zmeniť kliknutím na tlačidlo Použiť relatívne odkazy v skupine Kód na karte Vývojár. Toto tlačidlo je prepínacie tlačidlo. Keď je tlačidlo zvýraznené inou farbou, režim nahrávania je relatívny. Keď sa tlačidlo zobrazí normálne, nahrávate v absolútnom režime.
Spôsob nahrávania môžete zmeniť kedykoľvek, dokonca aj uprostred nahrávania.
Ak chcete vidieť, ako funguje nahrávanie v relatívnom režime, odstráňte obsah rozsahu B1:D1 a potom vykonajte nasledujúce kroky:
Aktivujte bunku B1.
Vyberte Vývojár → Kód → Zaznamenať makro.
Pomenujte toto makro Relatívne.
Kliknutím na tlačidlo OK spustíte nahrávanie.
Kliknutím na tlačidlo Use Relative References zmeňte režim nahrávania na relatívny.
Keď kliknete na toto tlačidlo, zmení sa na inú farbu ako zvyšok pásu.
Napíšte Jan do bunky B1.
Presuňte sa do bunky C1 a napíšte Feb.
Presuňte sa do bunky D1 a zadajte Mar.
Vyberte bunku B1.
Zastavte záznam makier.
Všimnite si, že tento postup sa mierne líši od predchádzajúceho príkladu. V tomto príklade aktivujete začiatočnú bunku pred spustením nahrávania. Toto je dôležitý krok pri zaznamenávaní makier, ktoré používajú aktívnu bunku ako základ.
Toto makro vždy začína zadávať text do aktívnej bunky. Skús to. Presuňte ukazovateľ bunky na ľubovoľnú bunku a potom vykonajte relatívne makro. Názvy mesiacov sa vždy zadávajú od aktívnej bunky.
Keď je režim nahrávania nastavený na relatívny, kód, ktorý Excel generuje, je úplne odlišný od kódu generovaného v absolútnom režime:
SubRelatívny()
'
'Relatívne makro
'
ActiveCell.FormulaR1C1 = “Jan”
ActiveCell.Offset(0, 1).Range(“A1”).Vybrať
ActiveCell.FormulaR1C1 = “Feb”
ActiveCell.Offset(0, 1).Range(“A1”).Vybrať
ActiveCell.FormulaR1C1 = “Mar”
ActiveCell.Offset(0, -2).Range(“A1”).Vybrať
End Sub
Ak chcete otestovať toto makro, aktivujte ľubovoľnú bunku okrem B1. Názvy mesiacov sa zadávajú do troch buniek, začínajúc bunkou, ktorú ste aktivovali.
Všimnite si, že kód vygenerovaný záznamníkom makier odkazuje na bunku A1. Môže sa to zdať zvláštne, pretože bunku A1 ste počas nahrávania makra nikdy nepoužili. Toto je jednoducho vedľajší produkt spôsobu fungovania makrorekordéra.