VBA zbroj funkcija (rasponi, stupci i više)

Ovaj vodič će vam pokazati kako koristiti funkciju Excel Sum u VBA

Funkcija zbroja jedna je od najčešće korištenih Excel funkcija, a vjerojatno i prva koju korisnici Excela nauče koristiti. VBA zapravo nema ekvivalent - korisnik mora koristiti ugrađenu Excel funkciju u VBA koristeći Funkcija radnog lista objekt.

Zbroj Funkcija radnog lista

Objekt WorksheetFunction može se koristiti za pozivanje većine Excel funkcija koje su dostupne u dijaloškom okviru Umetni funkciju u Excelu. Funkcija SUM jedna je od njih.

123 Funkcija podtestaRaspon ("D33") = Application.WorksheetFunction.Sum ("D1: D32")Kraj podm

Možete imati do 30 argumenata u funkciji SUM. Svaki se argument može odnositi i na niz ćelija.

Ovaj donji primjer zbrajat će ćelije D1 do D9

123 Sub TestSum ()Raspon ("D10") = Application.WorksheetFunction.SUM ("D1: D9")Kraj podm

Primjer u nastavku zbrajat će raspon u stupcu D i raspon u stupcu F. Ako ne upišete objekt Application, to će se pretpostaviti.

123 Sub TestSum ()Raspon ("D25") = Funkcija radnog lista.SUM (Raspon ("D1: D24"), Raspon ("F1: F24"))Kraj podm

Uočite da za jedan raspon ćelija ne morate navesti riječ 'Raspon' u formuli ispred ćelija, to pretpostavlja kôd. Međutim, ako koristite više argumenata, morate to učiniti.

Dodjeljivanje rezultata zbroja varijabli

Možda ćete htjeti koristiti rezultat svoje formule na drugom mjestu u kodu, a ne pisati ga izravno u Excel raspon. U tom slučaju rezultat možete dodijeliti varijabli koja će se kasnije koristiti u vašem kodu.

1234567 Sub AssignSumVariable ()Zatamnite rezultat kao dvostruki'Dodijelite varijabluresult = WorksheetFunction.SUM (Raspon ("G2: G7"), Raspon ("H2: H7"))'Pokaži rezultatMsgBox "Ukupni rasponi su" & rezultatKraj podm

Zbroji objekt raspona

Objektu Range možete dodijeliti skupinu ćelija, a zatim koristiti taj objekt Range s Funkcija radnog lista objekt.

123456789 Sub TestSumRange ()Dim rng As Range'dodijeliti raspon ćelijaPostavite rng = raspon ("D2: E10")'upotrijebite raspon u formuliRaspon ("E11") = Funkcija radnog lista.SUM (rng)'otpustite objekt rasponaPostavite rng = NištaKraj podm

Zbroji više objekata raspona

Slično, možete zbrojiti više objekata raspona.

123456789101112 Sub TestSumMultipleRanges ()Dim rngA As RangeDim rngB kao raspon'dodijeliti raspon ćelijaPostavite rngA = Raspon ("D2: D10")Postavite rngB = Raspon ("E2: E10")'upotrijebite raspon u formuliRaspon ("E11") = Funkcija radnog lista.SUM (rngA, rngB)'otpustite objekt rasponaPostavite rngA = NištaPostavite rngB = NištaKraj podm

Zbroj cijele kolone ili retka

Funkciju zbroja možete upotrijebiti i za zbrajanje cijelog stupca ili cijelog retka

Ovaj donji postupak zbrajat će sve numeričke ćelije u stupcu D.

123 Sub TestSum ()Raspon ("F1") = Funkcija radnog lista.SUM (Raspon ("D: D")Kraj podm

Iako će ovaj postupak u nastavku zbrajati sve numeričke ćelije u 9. retku.

123 Sub TestSum ()Raspon ("F2") = Funkcija radnog lista.SUM (Raspon ("9: 9")Kraj podm

Zbroji niz

Također možete koristiti WorksheetFunction.Sum za zbrajanje vrijednosti u nizu.

123456789101112 Sub TestArray ()Zatamnite intA (1 do 5) kao cijeli brojDim SumArray kao cijeli broj'popunite nizintA (1) = 15intA (2) = 20intA (3) = 25intA (4) = 30intA (5) = 40'zbrojite niz i pokažite rezultatMsgBox radni listFunction.SUM (intA)Kraj podm

Korištenje funkcije SumIf

Druga funkcija radnog lista koja se može koristiti je funkcija SUMIF.

123 Sub TestSumIf ()Raspon ("D11") = Funkcija radnog lista.SUMIF (Raspon ("C2: C10"), 150, Raspon ("D2: D10"))Kraj podm

Gore navedeni postupak zbrajat će ćelije u rasponu (D2: D10) samo ako je odgovarajuća ćelija u stupcu C = 150.

Formula zbroja

Kada koristite Funkcija radnog lista.SUM za dodavanje zbroja rasponu na vašem radnom listu vraća se statički zbroj, a ne fleksibilna formula. To znači da kada se vaše brojke u Excelu promijene, vrijednost koju je vratio Funkcija radnog lista neće se promijeniti.

U gornjem primjeru, postupak TestSum zbraja raspon (D2: D10) i rezultat je stavljen u D11. Kao što možete vidjeti na traci s formulama, ovaj rezultat je brojka, a ne formula.

Ako se neka od vrijednosti promijeni u rasponu (D2: D10), rezultat u D11 će NE promijeniti.

Umjesto da koristite Funkcija radnog lista.SUM, možete upotrijebiti VBA za primjenu funkcije zbroja na ćeliju pomoću Formula ili Formula R1C1 metodama.

Metoda formule

Metoda formule omogućuje vam da posebno pokažete na niz ćelija, na primjer: D2: D10 kao što je prikazano u nastavku.

123 Pod TestSumFormulaRaspon ("D11"). Formula = "= SUM (D2: D10)"Kraj podm

FormulaR1C1 metoda

Metoda FromulaR1C1 fleksibilnija je po tome što vas ne ograničava na zadani raspon ćelija. Primjer u nastavku dat će nam isti odgovor kao i prethodni.

123 Pod TestSumFormula ()Raspon ("D11"). Formula R1C1 = "= SUM (R [-9] C: R [-1] C)"Kraj podm

Međutim, kako bismo formulu učinili fleksibilnijom, kôd bismo mogli promijeniti tako da izgleda ovako:

123 Pod TestSumFormula ()ActiveCell.FormulaR1C1 = "= SUM (R [-9] C: R [-1] C)"Kraj podm

Gdje god se nalazili na svom radnom listu, formula će tada zbrajati 8 ćelija izravno iznad nje i odgovor smjestiti u vašu ActiveCell. Raspon unutar funkcije SUM mora se pozvati na sintaksu Redak (R) i Stupac (C).

Obje ove metode omogućuju vam korištenje Dynamic Excel formula unutar VBA.

U D11 sada će umjesto vrijednosti biti formula.

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave