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.