VBA summas funkcija (diapazoni, kolonnas un citi)

Šī apmācība parādīs, kā izmantot Excel Sum funkciju VBA

Summas funkcija ir viena no visplašāk izmantotajām Excel funkcijām un, iespējams, pirmā, ko Excel lietotāji iemācās lietot. VBA faktiski nav ekvivalenta - lietotājam ir jāizmanto VBA iebūvētā Excel funkcija, izmantojot WorkSheetFunction objekts.

Summas darblapas funkcija

Objektu WorksheetFunction var izmantot, lai izsauktu lielāko daļu Excel funkciju, kas ir pieejamas Excel dialoglodziņā Funkcijas ievietošana. Funkcija SUM ir viena no tām.

123 Apakšpārbaudes funkcijaDiapazons ("D33") = Application.WorksheetFunction.Sum ("D1: D32")Beigu apakš

Funkcijā SUM var būt līdz 30 argumentiem. Katrs no argumentiem var attiekties arī uz šūnu diapazonu.

Šis zemāk redzamais piemērs summē šūnas D1 līdz D9

123 Sub TestSum ()Diapazons ("D10") = Application.WorksheetFunction.SUM ("D1: D9")Beigu apakš

Tālāk sniegtajā piemērā tiks pievienots diapazons D slejā un diapazons F slejā. Ja neievadīsiet lietojumprogrammas objektu, tas tiks pieņemts.

123 Sub TestSum ()Diapazons ("D25") = WorksheetFunction.SUM (Diapazons ("D1: D24"), diapazons ("F1: F24"))Beigu apakš

Ņemiet vērā, ka atsevišķam šūnu diapazonam jums nav jānorāda vārds “diapazons” formulā šūnu priekšā, to pieņem kods. Tomēr, ja izmantojat vairākus argumentus, tas ir jādara.

Summas rezultāta piešķiršana mainīgajam

Iespējams, vēlēsities izmantot formulas rezultātu citur kodā, nevis rakstīt to tieši atpakaļ un Excel diapazonā. Ja tas tā ir, rezultātu varat piešķirt mainīgajam, lai to izmantotu vēlāk savā kodā.

1234567 Sub AssignSumVariable ()Iegūstiet dubultu rezultātu'Piešķiriet mainīgorezultāts = darblapas funkcija.SUM (diapazons ("G2: G7"), diapazons ("H2: H7"))'Parādiet rezultātuMsgBox "Diapazonu kopsumma ir" un rezultātsBeigu apakš

Summējiet diapazona objektu

Objektam Range varat piešķirt šūnu grupu un pēc tam izmantot šo diapazona objektu ar DarblapaFunkcija objekts.

123456789 Sub TestSumRange ()Dim rng As Range"piešķirt šūnu diapazonuIestatīt rng = Diapazons ("D2: E10")'izmantojiet diapazonu formulāDiapazons ("E11") = WorksheetFunction.SUM (rng)'atlaidiet diapazona objektuSet rng = NekasBeigu apakš

Summē vairāku diapazonu objektus

Līdzīgi varat summēt vairākus diapazona objektus.

123456789101112 Sub TestSumMultipleRanges ()Dim rngA As RangeDim rngB kā diapazons"piešķirt šūnu diapazonuIestatīt rngA = Diapazons ("D2: D10")Iestatīt rngB = diapazons ("E2: E10")'izmantojiet diapazonu formulāDiapazons ("E11") = WorksheetFunction.SUM (rngA, rngB)'atlaidiet diapazona objektuIestatīt rngA = NekasSet rngB = NekasBeigu apakš

Summa visa kolonna vai rinda

Varat arī izmantot funkciju Summa, lai pievienotu visu kolonnu vai visu rindu

Šī tālāk norādītā procedūra sasummēs visas C slejas ciparu šūnas.

123 Sub TestSum ()Diapazons ("F1") = WorksheetFunction.SUM (Diapazons ("D: D")Beigu apakš

Lai gan šī procedūra zemāk apkopos visas 9. rindas ciparu šūnas.

123 Sub TestSum ()Diapazons ("F2") = WorksheetFunction.SUM (Diapazons ("9: 9")Beigu apakš

Summējiet masīvu

Varat arī izmantot WorksheetFunction.Sum, lai masīvā pievienotu vērtības.

123456789101112 Sub TestArray ()Dim intA (no 1 līdz 5) kā vesels skaitlisDim SumArray kā vesels skaitlis'aizpildīt masīvuintA (1) = 15intA (2) = 20intA (3) = 25intA (4) = 30intA (5) = 40'saskaitiet masīvu un parādiet rezultātuMsgBox darblapas funkcija.SUM (intA)Beigu apakš

Funkcijas SumIf izmantošana

Vēl viena darblapas funkcija, ko var izmantot, ir funkcija SUMIF.

123 Sub TestSumIf ()Diapazons ("D11") = WorksheetFunction.SUMIF (Diapazons ("C2: C10"), 150, diapazons ("D2: D10"))Beigu apakš

Iepriekš minētā procedūra saskaitīs šūnas diapazonā (D2: D10) tikai tad, ja atbilstošā šūna kolonnā C = 150.

Summas formula

Kad izmantojat DarblapaFunkcija.SUM lai pievienotu summu darblapas diapazonam, tiek atgriezta statiska summa, nevis elastīga formula. Tas nozīmē, ka, mainoties skaitļiem programmā Excel, vērtība, kuru ir atgriezusi DarblapaFunkcija nemainīsies.

Iepriekš minētajā piemērā procedūra TestSum ir pievienojusi diapazonu (D2: D10) un rezultāts ir ievietots D11. Kā redzat formulas joslā, šis rezultāts ir skaitlis, nevis formula.

Ja kāda no vērtībām mainās diapazonā (D2: D10), rezultāts D11 būs mainīt.

Tā vietā, lai izmantotu DarblapaFunkcija.SUM, varat izmantot VBA, lai šūnai lietotu summas funkciju, izmantojot Formula vai FormulaR1C1 metodes.

Formulas metode

Formulas metode ļauj īpaši norādīt uz šūnu diapazonu, piemēram: D2: D10, kā parādīts zemāk.

123 ApakšpārbaudeSumFormulaDiapazons ("D11"). Formula = "= SUM (D2: D10)"Beigu apakš

FormulaR1C1 metode

FromulaR1C1 metode ir elastīgāka, jo tā neierobežo jūs ar noteiktu šūnu diapazonu. Tālāk sniegtais piemērs sniegs mums tādu pašu atbildi kā iepriekš.

123 Sub TestSumFormula ()Diapazons ("D11"). FormulaR1C1 = "= SUM (R [-9] C: R [-1] C)"Beigu apakš

Tomēr, lai padarītu formulu elastīgāku, mēs varētu grozīt kodu šādi:

123 Sub TestSumFormula ()ActiveCell.FormulaR1C1 = "= SUM (R [-9] C: R [-1] C)"Beigu apakš

Lai kur jūs atrastos darblapā, formula pēc tam saskaitīs 8 šūnas tieši virs tās un ievietos atbildi savā ActiveCell. Funkcijas SUM diapazons ir jānorāda, izmantojot rindas (R) un kolonnas (C) sintaksi.

Abas šīs metodes ļauj VBA izmantot dinamiskās Excel formulas.

Tagad vērtības D11 vietā būs formula.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave