Ta vadnica vam bo pokazala, kako uporabljati funkcijo Excel Sum v VBA
Funkcija vsote je ena najpogosteje uporabljenih Excelovih funkcij in verjetno prva, ki jo uporabniki Excela naučijo uporabljati. VBA dejansko nima enakovrednega - uporabnik mora uporabiti vgrajeno funkcijo Excel v VBA z uporabo Funkcija delovnega lista predmet.
Funkcija vsote delovnega lista
Objekt WorksheetFunction lahko uporabite za klic večine Excelovih funkcij, ki so na voljo v pogovornem oknu Vstavi funkcijo v Excelu. Ena izmed njih je funkcija SUM.
123 | Sub TestFunctionObseg ("D33") = Application.WorksheetFunction.Sum ("D1: D32")End Sub |
V funkciji SUM imate lahko do 30 argumentov. Vsak od argumentov se lahko nanaša tudi na vrsto celic.
Ta spodnji primer bo sešteval celice D1 do D9
123 | Sub TestSum ()Obseg ("D10") = Application.WorksheetFunction.SUM ("D1: D9")End Sub |
Spodnji primer bo sešteval obseg v stolpcu D in obseg v stolpcu F. Če ne vnesete predmeta aplikacije, bo predpostavljeno.
123 | Sub TestSum ()Obseg ("D25") = Funkcija delovnega lista.SUM (Razpon ("D1: D24"), Obseg ("F1: F24"))End Sub |
Opomba: za en sam obseg celic vam ni treba v formuli pred celicami navesti besede »Obseg«, to predvideva koda. Če pa uporabljate več argumentov, morate to storiti.
Dodelitev rezultata vsote spremenljivki
Rezultat svoje formule boste morda želeli uporabiti drugje v kodi, namesto da bi ga zapisali neposredno nazaj in v obseg Excel. V tem primeru lahko rezultat dodelite spremenljivki, ki jo boste uporabili pozneje v kodi.
1234567 | Sub AssignSumVariable ()Zatemni rezultat kot dvojno'Dodelite spremenljivkoresult = WorksheetFunction.SUM (obseg ("G2: G7"), obseg ("H2: H7"))'Pokaži rezultatMsgBox "Skupni obseg je" & rezultatEnd Sub |
Vsota predmeta obsega
Objektu Range lahko dodelite skupino celic, nato pa ta predmet Range uporabite z Funkcija delovnega lista predmet.
123456789 | Sub TestSumRange ()Dim rng As Range'dodelite obseg celicNastavi rng = območje ("D2: E10")"uporabite obseg v formuliObseg ("E11") = Funkcija delovnega lista.SUM (rng)'spustite predmet obsegaNastavi rng = NičEnd Sub |
Vsota več objektov obsega
Podobno lahko seštejete več objektov obsega.
123456789101112 | Sub TestSumMultipleRanges ()Dim rngA As RangeZatemni rngB kot obseg'dodelite obseg celicNastavite rngA = območje ("D2: D10")Nastavi rngB = Razpon ("E2: E10")"uporabite obseg v formuliObseg ("E11") = Funkcija delovnega lista.SUM (rngA, rngB)'spustite predmet obsegaNastavi rngA = NičNastavi rngB = NičEnd Sub |
Vsota celotnega stolpca ali vrstice
S funkcijo Sum lahko seštejete celoten stolpec ali celo vrstico
Ta spodnji postopek bo sešteval vse številske celice v stolpcu D.
123 | Sub TestSum ()Obseg ("F1") = Funkcija delovnega lista.SUM (Razpon ("D: D")End Sub |
Medtem ko ta spodnji postopek sešteje vse številske celice v 9. vrstici.
123 | Sub TestSum ()Obseg ("F2") = Funkcija delovnega lista.SUM (Razpon ("9: 9")End Sub |
Seštejte niz
Za seštevanje vrednosti v matriki lahko uporabite tudi WorksheetFunction.Sum.
123456789101112 | Sub TestArray ()Zatemni intA (1 do 5) kot celo številoDim SumArray kot celo število'napolni matrikointA (1) = 15intA (2) = 20intA (3) = 25intA (4) = 30intA (5) = 40"seštejte matriko in pokažite rezultatMsgBox WorksheetFunction.SUM (intA)End Sub |
Uporaba funkcije SumIf
Druga funkcija delovnega lista, ki jo lahko uporabite, je funkcija SUMIF.
123 | Sub TestSumIf ()Obseg ("D11") = Funkcija delovnega lista.SUMIF (Razpon ("C2: C10"), 150, Razpon ("D2: D10"))End Sub |
Zgornji postopek bo sešteval celice v območju (D2: D10) le, če je ustrezna celica v stolpcu C = 150.
Formula vsote
Ko uporabljate Delovni listFunction.SUM če želite vnos na svoj delovni list dodati vsoto, se vrne statična vsota, ne prilagodljiva formula. To pomeni, da ko se vaše številke v Excelu spremenijo, vrednost, ki jo je vrnil Funkcija delovnega lista se ne bo spremenilo.
V zgornjem primeru je postopek TestSum dodal obseg (D2: D10) in rezultat je bil zapisan v D11. Kot lahko vidite v vrstici s formulami, je ta rezultat številka in ne formula.
Če se torej katera koli vrednost spremeni v območju (D2: D10), bo rezultat v D11 NE spremeniti.
Namesto da uporabite Delovni listFunction.SUM, lahko z VBA uporabite funkcijo vsote za celico z uporabo Formula ali Formula R1C1 metode.
Metoda formule
Metoda formule vam omogoča, da posebej pokažete na vrsto celic, na primer: D2: D10, kot je prikazano spodaj.
123 | Sub TestSumFormulaRazpon ("D11"). Formula = "= SUM (D2: D10)"End Sub |
FormulaR1C1 Metoda
Metoda FromulaR1C1 je bolj prilagodljiva, saj vas ne omejuje na določeno območje celic. Spodnji primer nam bo dal enak odgovor kot zgornji.
123 | Sub TestSumFormula ()Razpon ("D11"). Formula R1C1 = "= SUM (R [-9] C: R [-1] C)"End Sub |
Da pa bi bila formula bolj prilagodljiva, bi lahko kodo spremenili takole:
123 | Sub TestSumFormula ()ActiveCell.FormulaR1C1 = "= SUM (R [-9] C: R [-1] C)"End Sub |
Kjer koli ste na svojem delovnem listu, bo formula nato sestavila 8 celic neposredno nad njim in odgovor postavila v vašo ActiveCell. Na obseg znotraj funkcije SUM se je treba sklicevati s sintakso vrstice (R) in stolpca (C).
Obe metodi vam omogočata uporabo formul Dynamic Excel v VBA.
Namesto vrednosti bo zdaj v D11 formula.