Excel VBA Formulas - Ultimate Guide

Tento tutoriál vás naučí vytvárať vzorce buniek pomocou jazyka VBA.

Vzorce vo VBA

Pomocou VBA môžete písať vzorce priamo do rozsahov alebo buniek v programe Excel. Vyzerá to takto:

123456789 Sub Formula_Example ()„Priraďte pevne kódovaný vzorec k jednej bunkeRozsah ("b3"). Vzorec = "= b1+b2"'Priraďte flexibilný vzorec k radu buniekRozsah ("d1: d100"). FormulaR1C1 = "= RC2+RC3"Koniec pod

Potrebujete vedieť dve vlastnosti rozsahu:

  • .Formula - Vytvorí presný vzorec (pevne zakódované odkazy na bunky). Dobré na pridanie vzorca do jednej bunky.
  • .FormulaR1C1 - Vytvára flexibilný vzorec. Dobré na pridanie vzorcov do radu buniek, kde by sa mali zmeniť odkazy na bunky.

V prípade jednoduchých vzorcov je dobré použiť vlastnosť .Formula. Na všetko ostatné však odporúčame použiť Záznamník makra

Makro rekordér a vzorce buniek

Makro rekordér je náš nástroj na písanie vzorcov buniek pomocou jazyka VBA. Môžete jednoducho:

  • Spustite nahrávanie
  • Zadajte vzorec (podľa potreby s relatívnymi / absolútnymi odkazmi) do bunky a stlačte kláves Enter
  • Zastaviť nahrávanie
  • Otvorte VBA a skontrolujte vzorec, podľa potreby sa prispôsobte a podľa potreby skopírujte+prilepte kód.

Zisťujem, že je oveľa lahšie zadať vzorec do bunky, ako zadať zodpovedajúci vzorec vo VBA.

Všimnite si pár vecí:

  • Makro rekordér bude vždy používať vlastnosť .FormulaR1C1
  • Makro rekordér rozpoznáva absolútne a relatívne bunkové referencie

Vlastníctvo VBA FormulaR1C1

Vlastnosť FormulaR1C1 používa odkazovanie na bunky v štýle R1C1 (na rozdiel od štandardného štýlu A1, na ktorý ste zvyknutí v programe Excel).

Tu je niekoľko príkladov:

12345678910111213141516171819 Sub FormulaR1C1_Examples ()„Referencia D5 (absolútna)'= $ D $ 5Rozsah ("a1"). FormulaR1C1 = "= R5C4"„Odkaz D5 (relatívny) z bunky A1'= D5Rozsah ("a1"). FormulaR1C1 = "= R [4] C [3]"„Referencia D5 (absolútny riadok, relatívny stĺpec) z bunky A1'= 5 DRozsah ("a1"). FormulaR1C1 = "= R5C [3]"„Referencia D5 (relatívny riadok, absolútny stĺpec) z bunky A1'= 5 D $Rozsah ("a1"). FormulaR1C1 = "= R [4] C4"Koniec pod

Všimnite si, že odkazovanie na bunky v štýle R1C1 vám umožňuje nastaviť absolútne alebo relatívne referencie.

Absolútne referencie

V štandardnom zápise A1 vyzerá absolútny odkaz takto: „= $ C $ 2“. V zápise R1C1 to vyzerá takto: „= R2C3“.

Ak chcete vytvoriť absolútny odkaz na bunku pomocou typu štýlu R1C1:

  • R + Číslo riadku
  • C + Číslo stĺpca

Príklad: R2C3 bude predstavovať bunku $ C $ 2 (C je tretí stĺpec).

123 „Referencia D5 (absolútna)'= $ D $ 5Rozsah ("a1"). FormulaR1C1 = "= R5C4"

Relatívne referencie

Relatívne odkazy na bunky sú odkazy na bunky, ktoré sa „pohybujú“ pri presúvaní vzorca.

V štandardnom zápise A1 vyzerajú takto: „= C2“. V zápise R1C1 použite zátvorky [] na odsadenie odkazu na bunku od aktuálnej bunky.

Príklad: Zadanie vzorca „= R [1] C [1]“ do bunky B3 by odkazovalo na bunku D4 (bunka 1 riadok nižšie a 1 stĺpec napravo od bunky vzorca).

Na odkaz na bunky nad alebo vľavo od aktuálnej bunky použite záporné čísla.

123 „Odkaz D5 (relatívny) z bunky A1'= D5Rozsah ("a1"). FormulaR1C1 = "= R [4] C [3]"

Zmiešané referencie

Bunkové odkazy môžu byť čiastočne relatívne a čiastočne absolútne. Príklad:

123 „Referencia D5 (relatívny riadok, absolútny stĺpec) z bunky A1'= 5 D $Rozsah ("a1"). FormulaR1C1 = "= R [4] C4"

Vlastnosť vzorca VBA

Pri nastavovaní vzorcov pomocou.Vlastnosť vzorca vždy budete používať notáciu v štýle A1. Vzorec zadávate rovnako ako v bunke programu Excel, okrem úvodzoviek:

12 „Priraďte pevne kódovaný vzorec k jednej bunkeRozsah ("b3"). Vzorec = "= b1+b2"

Tipy na vzorec VBA

Vzorec s premennou

Pri práci so vzorcami vo VBA je veľmi bežné chcieť používať vo vzorcoch buniek premenné. Ak chcete použiť premenné, pomocou & skombinujte premenné so zvyškom reťazca vzorcov. Príklad:

1234567 Sub Formula_Variable ()Dim colNum tak dlhécolNum = 4Rozsah ("a1"). FormulaR1C1 = "= R1C" & colNum & "+R2C" & colNumKoniec pod

Citáty zo vzorcov

Ak potrebujete do vzorca pridať citát (“), zadajte citát dvakrát („ “):

123 Sub Macro2 ()Rozsah ("B3"). FormulaR1C1 = "= TEXT (RC [-1]," "mm/dd/rrrr" ")"Koniec pod

Jedna citácia („) znamená pre VBA koniec reťazca textu. Zatiaľ čo dvojitá úvodzovka („“) je v reťazci textu považovaná za citáciu.

Podobne použite 3 úvodzovky („“ “) na obklopenie reťazca úvodzovkami („)

12 MsgBox "" "Použite 3 na obklopenie reťazca úvodzovkami" ""'Toto vytlačí okamžité okno

Priraďte vzorec bunky k premennej reťazca

Môžeme prečítať vzorec v danej bunke alebo rozsahu a priradiť ho reťazcovej premennej:

123 „Priradiť vzorec bunky k premennejDim strFormula ako reťazecstrFormula = Rozsah („B1“). Vzorec

Rôzne spôsoby pridania vzorcov do bunky

Tu je niekoľko ďalších príkladov priradenia vzorca k bunke:

  1. Priamo priradiť vzorec
  2. Definujte premennú reťazca obsahujúcu vzorec
  3. Na vytvorenie vzorca použite premenné
12345678910111213141516171819202122232425 Sub MoreFormulaExamples ()„Alternatívne spôsoby pridania vzorca SUM“do bunky B1'Dim strFormula ako reťazecDim bunka ako rozsahstmaviť odRow as Range, toRow as RangeNastaviť bunku = rozsah („B1“)„Priame priradenie reťazcacell.Formula = "= SUM (A1: A10)"'Ukladanie reťazca do premennej“a priradenie k vlastnosti„ Formula “strFormula = "= SUM (A1: A10)"bunka.Formula = strFormula„Použitie premenných na vytvorenie reťazca“a priradením k vlastnosti„ Formula “fromRow = 1toRow = 10strFormula = "= SUM (A" & fromValue & ": A" & toValue & ")bunka.Formula = strFormulaKoniec pod

Obnovte vzorce

Pripomíname, že na aktualizáciu vzorcov môžete použiť príkaz Vypočítať:

1 Vypočítajte

Ak chcete obnoviť jeden vzorec, rozsah alebo celý pracovný hárok, použite namiesto toho .Vypočítajte:

1 Tabuľky („List1“). Rozsah („a1: a10“). Vypočítajte

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave