Přejít na hlavní obsah

ActiveCell.Formular1C1 VBA Excel: podrobný popis a příklady použití

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.