Funkcia súčtu VBA (rozsahy, stĺpce a ďalšie)

Tento tutoriál vám ukáže, ako používať funkciu Excel Sum vo VBA

Funkcia súčtu je jednou z najpoužívanejších funkcií Excelu a pravdepodobne prvou, ktorú sa používatelia Excelu učia používať. VBA vlastne nemá ekvivalent - používateľ musí vo VBA používať vstavanú funkciu Excelu pomocou Funkcia pracovného listu predmet.

Funkcia súhrnu pracovného listu

Objekt WorksheetFunction je možné použiť na vyvolanie väčšiny funkcií programu Excel, ktoré sú k dispozícii v dialógovom okne Vložiť funkciu v programe Excel. Funkcia SUMA je jednou z nich.

123 Funkcia čiastkového testuRozsah ("D33") = Application.WorksheetFunction.Sum ("D1: D32")Koniec pod

Vo funkcii SUMA môžete mať až 30 argumentov. Každý z argumentov môže odkazovať aj na určitý rozsah buniek.

Tento príklad nižšie sčíta bunky D1 až D9

123 Dielčí testovací súčet ()Rozsah ("D10") = Application.WorksheetFunction.SUM ("D1: D9")Koniec pod

Nasledujúci príklad sčíta rozsah v stĺpci D a rozsah v stĺpci F. Ak nezadáte objekt Application, bude sa to predpokladať.

123 Dielčí testovací súčet ()Rozsah ("D25") = WorksheetFunction.SUM (rozsah ("D1: D24"), rozsah ("F1: F24"))Koniec pod

Upozorňujeme, že pre jeden rozsah buniek nemusíte vo vzorci pred bunkami zadávať slovo „Rozsah“, predpokladá sa to v kóde. Ak však používate viacero argumentov, musíte to urobiť.

Priradenie výsledku súčtu premennej

Výsledok svojho vzorca môžete chcieť použiť inde v kóde, než ho písať priamo späť do programu Excel Range. Ak je to tak, môžete výsledok priradiť k premennej, ktorá sa má použiť neskôr vo vašom kóde.

1234567 Sub AssignSumVariable ()Stmaviť výsledok ako dvojitý„Priraďte premennúvýsledok = WorksheetFunction.SUM (rozsah ("G2: G7"), rozsah ("H2: H7"))„Ukáž výsledokMsgBox „Celkový súčet rozsahov je“ a výsledokKoniec pod

Sum a Range Range Object

K objektu Range môžete priradiť skupinu buniek a potom použiť tento objekt Range s príponou Pracovný listFunkcia predmet.

123456789 Sub TestSumRange ()Dim rng As Range'priradiť rozsah buniekNastaviť rng = rozsah ("D2: E10")„použite rozsah vo vzorciRozsah ("E11") = WorksheetFunction.SUM (rng)'uvoľnite predmet dosahuNastaviť rng = ničKoniec pod

Súčet objektov viacerých rozsahov

Podobne môžete sčítať viacero objektov rozsahu.

123456789101112 Sub TestSumMultipleRanges ()Dim rngA ako rozsahDim rngB ako rozsah'priradiť rozsah buniekNastaviť rngA = rozsah ("D2: D10")Nastaviť rngB = rozsah ("E2: E10")„použite rozsah vo vzorciRozsah ("E11") = WorksheetFunction.SUM (rngA, rngB)'uvoľnite predmet dosahuNastaviť rngA = ničNastaviť rngB = ničKoniec pod

Súčet celého stĺpca alebo riadka

Na sčítanie celého stĺpca alebo celého riadka môžete použiť aj funkciu Súčet

Tento postup nižšie sčíta všetky číselné bunky v stĺpci D.

123 Dielčí testovací súčet ()Rozsah ("F1") = WorksheetFunction.SUM (rozsah ("D: D")Koniec pod

Aj keď tento postup nižšie sčíta všetky číselné bunky v riadku 9.

123 Dielčí testovací súčet ()Rozsah ("F2") = WorksheetFunction.SUM (rozsah ("9: 9")Koniec pod

Sum an Array

Môžete tiež použiť WorksheetFunction.Sum na sčítanie hodnôt v poli.

123456789101112 Dielčí testovací pole ()Dim intA (1 až 5) ako celé čísloDim SumArray ako celé číslo“naplňte poleintA (1) = 15intA (2) = 20intA (3) = 25intA (4) = 30intA (5) = 40'sčítajte pole a ukážte výsledokMsgBox WorksheetFunction.SUM (intA)Koniec pod

Použitie funkcie SumIf

Ďalšou funkciou pracovného hárka, ktorú je možné použiť, je funkcia SUMIF.

123 Sub TestSumIf ()Rozsah ("D11") = WorksheetFunction.SUMIF (rozsah ("C2: C10"), 150, rozsah ("D2: D10"))Koniec pod

Vyššie uvedený postup sčíta bunky v rozsahu (D2: D10) iba vtedy, ak zodpovedajúca bunka v stĺpci C = 150.

Sumový vzorec

Keď použijete WorksheetFunction.SUM ak chcete pridať súčet k rozsahu v pracovnom hárku, vráti sa statický súčet, nie flexibilný vzorec. To znamená, že keď sa vaše údaje v Exceli zmenia, hodnota, ktorú vrátil súbor Pracovný listFunkcia sa nezmení.

Vo vyššie uvedenom príklade postup TestSum spočítal rozsah (D2: D10) a výsledok bol vložený do D11. Ako vidíte na paneli vzorcov, tento výsledok je údaj a nie vzorec.

Ak sa teda ktorákoľvek z hodnôt zmení v rozsahu (D2: D10), výsledok v D11 sa zmení NIE zmeniť.

Namiesto použitia WorksheetFunction.SUM, môžete použiť VBA na použitie súčtovej funkcie na bunku pomocou Vzorec alebo Formula R1C1 metódy.

Metóda vzorca

Metóda vzorca vám umožňuje konkrétne poukázať na rozsah buniek, napr .: D2: D10, ako je uvedené nižšie.

123 Vedľajší súhrnný vzorecRozsah ("D11"). Vzorec = "= SUM (D2: D10)"Koniec pod

Metóda FormulaR1C1

Metóda FromulaR1C1 je flexibilnejšia v tom, že vás neobmedzuje na určitý rozsah buniek. Nasledujúci príklad nám poskytne rovnakú odpoveď ako vyššie.

123 Sub testSumFormula ()Rozsah ("D11"). Vzorec R1C1 = "= SUM (R [-9] C: R [-1] C)"Koniec pod

Aby bol však vzorec flexibilnejší, mohli by sme kód zmeniť tak, aby vyzeral takto:

123 Sub testSumFormula ()ActiveCell.FormulaR1C1 = "= SUM (R [-9] C: R [-1] C)"Koniec pod

Nech ste kdekoľvek v pracovnom hárku, vzorec potom spočíta 8 buniek priamo nad ním a odpoveď sa vloží do vášho ActiveCell. Na rozsah vo funkcii SUM je potrebné odkazovať pomocou syntaxe riadka (R) a stĺpca (C).

Obe tieto metódy vám umožňujú používať vzorce Dynamic Excel vo VBA.

Teraz bude namiesto hodnoty vzorec v D11.

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

wave wave wave wave wave