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.