VBA pro Excel existuje mnoho vestavěných funkcí a metod, které vám umožňují manipulovat s daty v pracovním sešitu. Jednou z těchto metod je ActiveCell.FormulaR1C1, který umožňuje nastavit vzorce buňkám v R1C1 notaci. R1C1-notace je relativní odkaz na buňky, nikoli absolutní adresy. To je užitečné zejména při kopírování vzorců a skupinovém zpracování dat v sešitu.
Metoda ActiveCell.FormulaR1C1 má následující syntaxi:
ActiveCell.FormulaR1C1(R1C1)
Kde R1C1 - je to argument, který představuje vzorec, který je třeba nastavit aktuální aktivní buňku. Vzorec by měl být uveden v R1C1 notaci. Chcete-li například nastavit vzorec "=SUM( A1: B2) " pro aktuální buňku, můžete použít následující kód:
ActiveCell.FormulaR1C1 = "=SUM(R[-1]C:R[1]C)"
V tomto příkladu bude buňce přiřazen vzorec, který shrnuje hodnoty v buňkách nad a pod současnou buňkou ve sloupcích A A B.
ActiveCell.Formular1C1 VBA Excel: k čemu slouží a jak používat
Tato metoda je zvláště užitečná v případě, kdy je nutné automatizovat proces vyplňování buněk vzorci. Můžete například použít ActiveCell.Formular1C1 pro vytváření složitých vzorců ve smyčce a jejich automatické kopírování do určitého rozsahu buněk. To vám umožní efektivně zpracovávat velké množství dat a zjednodušit práci s tabulkami v Excelu.
Příklad použití metody ActiveCell.Formular1C1:
Sub SetFormula()Dim rng As Range' Задаем формулу для активной ячейкиActiveCell.Formular1C1 = "=SUM(R[-2]C:R[-1]C)"' Копируем формулу в диапазон ячеекSet rng = Range("A2:A10")rng.Formular1C1 = ActiveCell.Formular1C1End Sub
V tomto příkladu nastavíme vzorec pro aktivní buňku, který shrnuje hodnoty dvou předchozích buněk ve sloupci. Poté zkopírujeme tento vzorec do rozsah buněk od A2 do A10. Hodnoty v těchto buňkách se tedy automaticky aktualizují, když se změní původní data.
ActiveCell.Formular1C1 je výkonný nástroj v Excelu VBA pro automatizaci práce se vzorci. Umožňuje snadno vytvářet a měnit vzorce za běhu a také zvyšuje efektivitu práce s daty v tabulkách. Pomocí této metody usnadníte práci s Excelem a snížíte náklady na rutinní operace.
Popis ActiveCell.Formular1C1 VBA Excel
Formát R1C1 je relativní odkaz na buňky. Místo běžných absolutních odkazů, jako je A1 , se ve formátu R1C1 používá relativní odkaz, kde R znamená řádek a C sloupec. Například buňka přímo nad aktivní buňkou má odkaz R[-1]C a buňka vlevo má odkaz RC[-1] .
Vlastnost FormulaR1C1 lze použít jak k zadání vzorce, tak ke čtení vzorce. K zadání vzorce lze například použít následující kód:
ActiveCell.FormulaR1C1 = "=SUM(R1C1:R5C5)"
V tomto příkladu nastavíme aktivní buňce vzorec pro součet rozsahu buněk od R1C1 do R5C5.
Chcete-li číst vzorec, jednoduše přiřaďte vlastnosti FormulaR1C1 proměnné nebo odvozte její hodnotu:
Dim formula As Stringformula = ActiveCell.FormulaR1C1
V tomto příkladu přiřadíme proměnné formula hodnotu vzorce obsaženého v aktivní buňce.
Použití formátu R1C1 může být zvláště užitečné při práci s makry VBA Excel, protože umožňuje vytvářet dynamické odkazy na buňky a proměnné.
Příklady použití ActiveCell.Formular1C1 VBA Excel
Příklad 1:
V tomto příkladu používáme metodu ActiveCell.Formular1C1 pro zápis vzorce do aktivní buňky. Například v dalším kódu zapíšeme do aktivní buňky vzorec pro sčítání dvou hodnot:
ActiveCell.FormulaR1C1 = "=RC[-1] + RC[-2]"
Zde " RC[-1]"označuje hodnotu umístěnou v buňce nalevo od aktivní buňky a" RC[-2]"- hodnota ve dvou buňkách nalevo od aktivní buňky.
Příklad 2:
Můžeme také použít metodu ActiveCell.Formular1C1 pro záznam vzorce pomocí absolutních odkazů, tedy odkazů na konkrétní buňky, které nejsou závislé na aktivní buňce. Například:
ActiveCell.FormulaR1C1 = "=$A$1 + $B$2"
Zde "$a$1 "znamená hodnotu v buňce A1 a" $B$2 " je hodnota v buňce B2.
Příklad 3:
Metoda ActiveCell.Formular1C1 také umožňuje použití funkcí aplikace Excel ve vzorcích. Například v dalším kódu zapíšeme do aktivní buňky vzorec, který používá funkci SUM ke sčítání hodnot v rozsahu buněk:
ActiveCell.FormulaR1C1 = "=SUM(RC[-2]:RC[-1])"
Zde " SUM (RC[-2]:RC[-1]) "znamená sčítání hodnot v rozsahu buněk, počínaje dvěma buňkami nalevo od aktivní buňky a konče jednou buňkou nalevo od aktivní buňky.
Tedy použití metody ActiveCell.Formular1C1 nám umožňuje snadno zapisovat vzorce do aktivních buněk VBA Excel. To je užitečné, když je třeba automatizovat výpočty a analýzu dat v tabulce.