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.