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.