Šī 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 NĒ 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.