VBA összegfüggvény (tartományok, oszlopok és egyebek)

Ez az oktatóanyag megmutatja, hogyan kell használni az Excel Sum funkciót a VBA -ban

Az összeg függvény az egyik leggyakrabban használt Excel függvény, és valószínűleg az első, amelyet az Excel felhasználók megtanulnak használni. A VBA -nak valójában nincs megfelelője - a felhasználónak a VBA beépített Excel funkcióját kell használnia a WorkSheetFunction tárgy.

Összeg munkalapFunkció

A WorksheetFunction objektum a legtöbb Excel -funkció meghívására használható, amelyek az Excel Funkció beszúrása párbeszédpaneljén érhetők el. A SUM függvény az egyik.

123 Sub TestFunctionTartomány ("D33") = Application.WorksheetFunction.Sum ("D1: D32")End Sub

A SUM függvényben legfeljebb 30 argumentum áll rendelkezésre. Minden argumentum cellatartományra is utalhat.

Ez az alábbi példa összeadja a D1 -D9 cellákat

123 Sub TestSum ()Tartomány ("D10") = Application.WorksheetFunction.SUM ("D1: D9")End Sub

Az alábbi példa összead egy tartományt a D oszlopban és egy tartományt az F oszlopban. Ha nem írja be az Application objektumot, akkor azt feltételezzük.

123 Sub TestSum ()Tartomány ("D25") = WorksheetFunction.SUM (tartomány ("D1: D24"), tartomány ("F1: F24"))End Sub

Figyelje meg, hogy egyetlen cellatartomány esetében nem kell megadni a „Range” szót a képletben a cellák előtt, ezt a kód feltételezi. Ha azonban több érvet használ, akkor ezt meg kell tennie.

Összes eredmény hozzárendelése egy változóhoz

Érdemes a képlet eredményét máshol használni a kódban, ahelyett, hogy közvetlenül visszaírná az Excel tartományba. Ebben az esetben az eredményt hozzárendelheti egy változóhoz, amelyet később használhat a kódban.

1234567 Sub AssignSumVariable ()Halvány eredmény duplán'Rendelje hozzá a változóteredmény = WorksheetFunction.SUM (tartomány ("G2: G7"), tartomány ("H2: H7"))'Mutasd az eredménytMsgBox "A tartományok összértéke" és eredményEnd Sub

Tartomány objektum összegzése

Cellacsoportot rendelhet a Range objektumhoz, majd a Range objektumot a MunkalapFunkció tárgy.

123456789 Sub TestSumRange ()Dim rng mint tartomány'rendelje hozzá a cellák tartományátRng = tartomány beállítása ("D2: E10")'használja a tartományt a képletbenTartomány ("E11") = WorksheetFunction.SUM (rng)'engedje el a tartományobjektumotSet rng = SemmiEnd Sub

Több tartományú objektumok összege

Hasonlóképpen több Range objektumot is összegezhet.

123456789101112 Sub TestSumMultipleRanges ()Dim rngA As RangeDim rngB mint tartomány'rendelje hozzá a cellák tartományátÁllítsa be az rngA = tartományt ("D2: D10")Állítsa be az rngB = tartományt ("E2: E10")'használja a tartományt a képletbenTartomány ("E11") = WorksheetFunction.SUM (rngA, rngB)'engedje el a tartományobjektumotSet rngA = SemmiSet rngB = SemmiEnd Sub

Összes oszlop vagy sor

Az Összeg funkció segítségével egy egész oszlopot vagy egy egész sort is hozzáadhat

Ez az alábbi eljárás összeadja a D oszlop összes numerikus celláját.

123 Sub TestSum ()Tartomány ("F1") = WorksheetFunction.SUM (Tartomány ("D: D")End Sub

Míg ez az alábbi eljárás összeadja a 9. sor összes numerikus celláját.

123 Sub TestSum ()Tartomány ("F2") = WorksheetFunction.SUM (Tartomány ("9: 9")End Sub

Sum egy tömb

Használhatja a WorksheetFunction.Sum értéket is egy tömb értékeinek összeadásához.

123456789101112 Sub TestArray ()Dim intA (1 -től 5 -ig) Egész számkéntDim SumArray mint egész'töltse ki a tömbötintA (1) = 15intA (2) = 20intA (3) = 25intA (4) = 30intA (5) = 40'add össze a tömböt és mutasd az eredménytMsgBox WorksheetFunction.SUM (intA)End Sub

A SumIf függvény használata

Egy másik használható munkalap -funkció a SUMIF függvény.

123 Sub TestSumIf ()Tartomány ("D11") = WorksheetFunction.SUMIF (Tartomány ("C2: C10"), 150, Tartomány ("D2: D10"))End Sub

A fenti eljárás csak akkor adja össze a tartomány (D2: D10) celláit, ha a C oszlop megfelelő cellája = 150.

Összegképlet

Amikor a MunkalapFunkció.SUM ha összeget szeretne hozzáadni a munkalap egy tartományához, statikus összeget ad vissza, nem pedig rugalmas képletet. Ez azt jelenti, hogy amikor az Excel számai megváltoznak, akkor a MunkalapFunkció nem fog változni.

A fenti példában a TestSum eljárás összeadta a tartományt (D2: D10), és az eredmény a D11 -be került. Amint a képletsávban látható, ez az eredmény egy ábra és nem képlet.

Ha valamelyik érték ezért változik a Tartományban (D2: D10), akkor a D11 -es eredmény változik NEM változás.

Ahelyett, hogy a MunkalapFunkció.SUM, a VBA segítségével Sum Funkciót alkalmazhat egy cellára a Képlet vagy KépletR1C1 mód.

Képlet módszer

A képletmód lehetővé teszi, hogy konkrétan mutasson egy cellatartományra, például: D2: D10, amint az alább látható.

123 Sub TestSumFormulaTartomány ("D11"). Képlet = "= SUM (D2: D10)"End Sub

FormulaR1C1 módszer

A FromulaR1C1 módszer rugalmasabb, mivel nem korlátozza a cellák meghatározott tartományára. Az alábbi példa ugyanazt a választ adja, mint a fenti.

123 Sub TestSumFormula ()Tartomány ("D11"). KépletR1C1 = "= SUM (R [-9] C: R [-1] C)"End Sub

A képlet rugalmasabbá tétele érdekében azonban módosíthatjuk a kódot így:

123 Sub TestSumFormula ()ActiveCell.FormulaR1C1 = "= SUM (R [-9] C: R [-1] C)"End Sub

Bárhol is van a munkalapon, a képlet összeadja a közvetlenül alatta lévő 8 cellát, és a választ az ActiveCell -be helyezi. A SUM függvényen belüli tartományra a Sor (R) és az Oszlop (C) szintaxis segítségével kell hivatkozni.

Mindkét módszer lehetővé teszi a dinamikus Excel képletek használatát a VBA -n belül.

Most a D11 képlet lesz az érték helyett.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave