Funkce součtu VBA (rozsahy, sloupce a další)

Tento tutoriál vám ukáže, jak používat funkci Excel Sum ve VBA

Funkce sum je jednou z nejpoužívanějších funkcí Excelu a pravděpodobně první, kterou se uživatelé Excelu učí používat. VBA ve skutečnosti nemá ekvivalent - uživatel musí ve VBA používat vestavěnou funkci Excelu pomocí Funkce pracovního listu objekt.

Funkce souhrnného listu

Objekt WorksheetFunction lze použít k volání většiny funkcí aplikace Excel, které jsou k dispozici v dialogovém okně Vložit funkci v aplikaci Excel. Funkce SUM je jedním z nich.

123 Dílčí testovací funkceRozsah ("D33") = Application.WorksheetFunction.Sum ("D1: D32")End Sub

Ve funkci SUMA můžete mít až 30 argumentů. Každý z argumentů může také odkazovat na řadu buněk.

Tento příklad níže sečte buňky D1 až D9

123 Dílčí součet testu ()Rozsah ("D10") = Application.WorksheetFunction.SUM ("D1: D9")End Sub

Následující příklad sečte rozsah ve sloupci D a rozsah ve sloupci F. Pokud nezadáte objekt Application, bude se předpokládat.

123 Dílčí součet testu ()Rozsah ("D25") = WorksheetFunction.SUM (rozsah ("D1: D24"), rozsah ("F1: F24"))End Sub

Všimněte si, že pro jeden rozsah buněk nemusíte ve vzorci před buňkami zadávat slovo „Rozsah“, předpokládá to kód. Pokud však používáte více argumentů, musíte to udělat.

Přiřazení výsledku součtu proměnné

Možná budete chtít použít výsledek vzorce jinde v kódu, než abyste ho psali přímo zpět do a rozsahu Excelu. Pokud tomu tak je, můžete výsledek přiřadit proměnné, kterou použijete později v kódu.

1234567 Sub AssignSumVariable ()Dim výsledek jako Double"Přiřaďte proměnnou."výsledek = WorksheetFunction.SUM (rozsah ("G2: G7"), rozsah ("H2: H7"))„Ukaž výsledekMsgBox „Součet rozsahů je“ a výsledekEnd Sub

Součet objektu rozsahu

K objektu Range můžete přiřadit skupinu buněk a poté použít tento Range objekt s Pracovní list Funkce objekt.

123456789 Dílčí testSumRange ()Dim rng As Range'přiřaďte rozsah buněkNastavit rng = rozsah ("D2: E10")'použijte rozsah ve vzorci.'Rozsah ("E11") = WorksheetFunction.SUM (rng)'uvolněte předmět dosahuNastavit rng = NicEnd Sub

Součet objektů více rozsahů

Podobně můžete sečíst více objektů rozsahu.

123456789101112 Sub TestSumMultipleRanges ()Dim rngA jako rozsahDim rngB jako rozsah'přiřaďte rozsah buněkNastavit rngA = rozsah ("D2: D10")Nastavit rngB = rozsah ("E2: E10")'použijte rozsah ve vzorci.'Rozsah ("E11") = WorksheetFunction.SUM (rngA, rngB)'uvolněte předmět dosahuNastavit rngA = NicNastavit rngB = NicEnd Sub

Součet celého sloupce nebo řádku

Pomocí funkce Součet můžete také sečíst celý sloupec nebo celý řádek

Tento postup níže sečte všechny číselné buňky ve sloupci D.

123 Dílčí součet testu ()Rozsah ("F1") = WorksheetFunction.SUM (Rozsah ("D: D")End Sub

Zatímco tento postup níže sečte všechny číselné buňky v řádku 9.

123 Dílčí součet testu ()Rozsah ("F2") = WorksheetFunction.SUM (rozsah ("9: 9")End Sub

Sum an Array

Můžete také použít WorksheetFunction.Sum k sečtení hodnot v poli.

123456789101112 Dílčí testovací pole ()Dim intA (1 až 5) jako celé čísloDim SumArray jako celé číslo'naplnit poleintA (1) = 15intA (2) = 20intA (3) = 25intA (4) = 30intA (5) = 40'sečtěte pole a ukažte výsledekMsgBox WorksheetFunction.SUM (intA)End Sub

Použití funkce SumIf

Další funkcí listu, kterou lze použít, je funkce SUMIF.

123 Dílčí testSumIf ()Rozsah ("D11") = WorksheetFunction.SUMIF (rozsah ("C2: C10"), 150, rozsah ("D2: D10"))End Sub

Výše uvedený postup sečte buňky v rozsahu (D2: D10) pouze v případě, že odpovídající buňka ve sloupci C = 150.

Součet vzorce

Když použijete WorksheetFunction.SUM Chcete -li přidat součet do rozsahu v listu, vrátí se statický součet, nikoli flexibilní vzorec. To znamená, že když se vaše čísla v Excelu změní, hodnota, která byla vrácena Pracovní list Funkce nezmění.

Ve výše uvedeném příkladu procedura TestSum sečetla rozsah (D2: D10) a výsledek byl vložen do D11. Jak vidíte na řádku vzorců, tento výsledek je obrázek a ne vzorec.

Pokud se tedy některá z hodnot v Rozsahu (D2: D10) změní, výsledek v D11 se změní NE změna.

Místo použití WorksheetFunction.SUM, můžete použít VBA k použití funkce Součet na buňku pomocí Vzorec nebo Vzorec R1C1 metody.

Metoda vzorce

Metoda vzorce vám umožňuje konkrétně ukázat na rozsah buněk, např .: D2: D10, jak je uvedeno níže.

123 Dílčí testovací součetRozsah ("D11"). Vzorec = "= SUM (D2: D10)"End Sub

Metoda FormulaR1C1

Metoda FromulaR1C1 je flexibilnější v tom, že vás neomezuje na nastavený rozsah buněk. Následující příklad nám dá stejnou odpověď jako ten výše.

123 Dílčí testSumFormula ()Rozsah ("D11"). FormulaR1C1 = "= SUM (R [-9] C: R [-1] C)"End Sub

Aby byl vzorec flexibilnější, mohli bychom kód upravit tak, aby vypadal takto:

123 Dílčí testSumFormula ()ActiveCell.FormulaR1C1 = "= SUM (R [-9] C: R [-1] C)"End Sub

Ať jste kdekoli v listu, vzorec pak sečte 8 buněk přímo nad ním a umístí odpověď do vašeho ActiveCell. Na rozsah uvnitř funkce SUM je třeba odkazovat pomocí syntaxe Row (R) a Column (C).

Obě tyto metody vám umožňují používat ve VBA vzorce Dynamic Excel.

Nyní bude místo hodnoty vzorec v D11.

wave wave wave wave wave