Relativní reference v Excel makro prostředky vzhledem k aktuálně aktivní buňky. Buďte tedy opatrní při výběru aktivní buňky – jak při záznamu relativního referenčního makra, tak při jeho spouštění.
Nejprve otevřete Sample File.xlsx dostupný online . Poté pomocí následujících kroků zaznamenejte relativní referenční makro:
Na kartě Vývojář vyberte možnost Použít relativní odkazy.
Záznam makra s relativními odkazy.
Ujistěte se, že je vybrána buňka A1.
Na kartě Vývojář vyberte Zaznamenat makro.
Makro pojmenujte AddTotalRelative.
Jako místo uložení zvolte Tento sešit.
Klepnutím na OK zahájíte nahrávání.
Vyberte buňku A16 a do buňky zadejte Celkem.
Vyberte první prázdnou buňku ve sloupci D (D16) a zadejte = COUNTA(D2:D15).
Na kartě Vývojář kliknutím na tlačítko Zastavit záznam zastavíte záznam makra.
V tomto okamžiku jste zaznamenali dvě makra. Udělejte si chvilku a prozkoumejte kód pro nově vytvořené makro výběrem možnosti Makra na kartě Vývojář a otevřete dialogové okno Makro. Zvolte makro AddTotalRelative a klikněte na Upravit.
Znovu se otevře Editor jazyka Visual Basic a zobrazí kód, který byl napsán při záznamu makra. Tentokrát váš kód vypadá asi takto:
Sub AddTotalRelative()
ActiveCell.Offset(15, 0).Range("A1").Vybrat
ActiveCell.FormulaR1C1 = "Celkem"
ActiveCell.Offset(0, 3).Range("A1").Vybrat
ActiveCell.FormulaR1C1 = "=COUNTA(R[-14]C:R[-1]C)"
End Sub
Nejprve si všimněte, že kód neobsahuje odkazy na konkrétní rozsahy buněk (jiné než počáteční bod A1). Všimněte si, že v tomto makru používá Excel vlastnost Offset aktivní buňky. Tato vlastnost říká kurzoru, aby přesunul určitý počet buněk nahoru nebo dolů a určitý počet buněk doleva nebo doprava.
V tomto případě kód vlastnosti Offset říká Excelu, aby se přesunul o 15 řádků dolů a 0 sloupců od aktivní buňky (A1). Protože bylo makro zaznamenáno pomocí relativního odkazu, Excel explicitně nevybere konkrétní buňku, jako tomu bylo při záznamu makra absolutního odkazu.
Chcete-li vidět toto makro v akci, odstraňte řádek Celkem pro obě tabulky a proveďte následující:
Vyberte buňku A1.
Na kartě Vývojář vyberte Makra.
Najděte a vyberte makro AddTotalRelative.
Klepněte na tlačítko Spustit.
Vyberte buňku F1.
Na kartě Vývojář vyberte Makra.
Najděte a vyberte makro AddTotalRelative.
Klepněte na tlačítko Spustit.
Všimněte si, že toto makro na rozdíl od předchozího makra funguje na obou sadách dat. Protože makro použije součty vzhledem k aktuálně aktivní buňce, jsou součty použity správně.
Aby toto makro fungovalo, musíte to jednoduše zajistit
-
Před spuštěním makra jste vybrali správnou počáteční buňku.
-
Blok dat má stejný počet řádků a sloupců jako data, na která jste makro zaznamenali.