VBA summafunktsioon (vahemikud, veerud ja palju muud)

See õpetus näitab teile, kuidas VBA -s Exceli summa funktsiooni kasutada

Summafunktsioon on üks enim kasutatud Exceli funktsioone ja ilmselt esimene, mida Exceli kasutajad kasutama õpivad. VBA -l pole tegelikult samaväärset - kasutaja peab kasutama VBA sisseehitatud Exceli funktsiooni, kasutades Töölehe funktsioon objekti.

Summa töölehtFunktsioon

Objekti WorksheetFunction abil saab helistada enamikule Exceli funktsioonidele, mis on saadaval Exceli dialoogiboksis Lisa funktsioon. Funktsioon SUM on üks neist.

123 AlamkatsefunktsioonVahemik ("D33") = Application.WorksheetFunction.Sum ("D1: D32")End Sub

Funktsioonis SUM on teil kuni 30 argumenti. Iga argument võib viidata ka lahtrivahemikule.

See allolev näide liidab lahtrid D1 kuni D9

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

Allolev näide lisab veeru D vahemiku ja veeru F. vahemiku. Kui te ei kirjuta objekti Rakendus, eeldatakse seda.

123 Sub TestSum ()Vahemik ("D25") = WorksheetFunction.SUM (Vahemik ("D1: D24"), vahemik ("F1: F24"))End Sub

Pange tähele, et ühe lahtrivahemiku puhul ei pea lahtrite ees olevas valemis sõna „vahemik” määrama, see eeldatakse koodi järgi. Kui aga kasutate mitut argumenti, peate seda tegema.

Summatulemuse määramine muutujale

Võib -olla soovite oma valemi tulemust kasutada mujal koodis, selle asemel, et kirjutada see otse tagasi ja Exceli vahemikku. Sellisel juhul saate tulemuse määrata muutujale, et seda oma koodis hiljem kasutada.

1234567 Sub AssignSumVariable ()Tulemus topelt'Määrake muutujaresult = WorksheetFunction.SUM (Vahemik ("G2: G7"), vahemik ("H2: H7"))'Näita tulemustMsgBox "Vahemike summa on" ja tulemusEnd Sub

Summeerige vahemiku objekt

Objektile Range saate määrata lahtrirühma ja seejärel kasutada seda vahemiku objekti koos TöölehtFunktsioon objekti.

123456789 AlamkatseSumRange ()Dim rng As Range'määrake lahtrite vahemikMäära rng = vahemik ("D2: E10")'kasutage valemis vahemikkuVahemik ("E11") = Töölehe funktsioon.SUM (rng)'vabastage vahemiku objektMäära rng = mitte midagiEnd Sub

Summeerige mitme vahemiku objekte

Samamoodi saate liita mitu vahemiku objekti.

123456789101112 Sub TestSumMultipleRanges ()Dim rngA As RangeDim rngB kui vahemik'määrake lahtrite vahemikMäära rngA = Vahemik ("D2: D10")Määra rngB = vahemik ("E2: E10")'kasutage valemis vahemikkuVahemik ("E11") = Töölehe funktsioon.SUM (rngA, rngB)'vabastage vahemiku objektMäära rngA = Mitte midagiMäära rngB = mitte midagiEnd Sub

Summeerige kogu veerg või rida

Funktsiooni Summa abil saate liita ka terve veeru või terve rea

See allolev protseduur liidab kõik veeru D numbrilised lahtrid.

123 Sub TestSum ()Vahemik ("F1") = TöölehtFunktsioon.SUM (Vahemik ("D: D")End Sub

Kuigi see allolev protseduur liidab kõik rea 9 numbrilised lahtrid.

123 Sub TestSum ()Vahemik ("F2") = TöölehtFunktsioon.SUM (Vahemik ("9: 9")End Sub

Summa Array

Massiivi väärtuste liitmiseks saate kasutada ka funktsiooni WorksheetFunction.Sum.

123456789101112 Sub TestArray ()Dim intA (1 kuni 5) täisarvunaDim SumArray täisarvuna'täitke massiivintA (1) = 15intA (2) = 20intA (3) = 25intA (4) = 30intA (5) = 40'liida massiiv kokku ja näita tulemustMsgBoxi töölehe funktsioon.SUM (intA)End Sub

Funktsiooni SumIf kasutamine

Teine töölehe funktsioon, mida saab kasutada, on funktsioon SUMIF.

123 AlamkatseSumIf ()Vahemik ("D11") = WorksheetFunction.SUMIF (vahemik ("C2: C10"), 150, vahemik ("D2: D10"))End Sub

Ülaltoodud protseduur liidab vahemiku (D2: D10) lahtrid kokku ainult siis, kui veeru C vastav lahter = 150.

Summa valem

Kui kasutate TöölehtFunktsioon.SUM töölehele vahemikule summa lisamiseks tagastatakse staatiline summa, mitte paindlik valem. See tähendab, et kui teie arvud Excelis muutuvad, siis väärtus, mille on tagastanud TöölehtFunktsioon ei muutu.

Ülaltoodud näites on protseduur TestSum lisanud vahemiku (D2: D10) ja tulemus on lisatud D11 -sse. Nagu näete valemiribal, on see tulemus joonis ja mitte valem.

Kui mõni väärtustest muutub seetõttu vahemikus (D2: D10), muutub tulemus jaotises D11 MITTE muutus.

Selle asemel, et kasutada TöölehtFunktsioon.SUM, saate kasutada VBA -d, et rakendada lahtrile summafunktsioon, kasutades Valem või Valem R1C1 meetodeid.

Valemimeetod

Valemimeetod võimaldab teil osutada konkreetselt lahtrite vahemikule, nt: D2: D10, nagu allpool näidatud.

123 Sub TestSumFormulaVahemik ("D11"). Valem = "= SUM (D2: D10)"End Sub

ValemR1C1 meetod

FromulaR1C1 meetod on paindlikum, kuna see ei piira teid teatud lahtrite vahemikuga. Allolev näide annab meile sama vastuse nagu ülaltoodud.

123 AlamkatseSumFormula ()Vahemik ("D11"). ValemR1C1 = "= SUM (R [-9] C: R [-1] C)"End Sub

Kuid valemi paindlikumaks muutmiseks võiksime koodi muuta järgmiselt:

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

Kus iganes teie töölehel viibite, liidab valem 8 lahtrit otse selle kohal ja asetab vastuse teie ActiveCelli. Funktsiooni SUM sees olevale vahemikule tuleb viidata, kasutades rida (R) ja veeru (C) süntaksit.

Mõlemad meetodid võimaldavad teil VBA -s kasutada dünaamilisi Exceli valemeid.

D11 -s on nüüd väärtuse asemel valem.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave