VBA sumos funkcija (diapazonai, stulpeliai ir kt.)

Ši pamoka parodys, kaip naudoti „Excel Sum“ funkciją VBA

Sumos funkcija yra viena iš plačiausiai naudojamų „Excel“ funkcijų ir tikriausiai pirmoji, kuria „Excel“ vartotojai išmoksta naudotis. VBA iš tikrųjų neturi atitikmens - vartotojas turi naudoti integruotą „Excel“ funkciją VBA naudodamas „WorkSheetFunction“ objektas.

Sumos darbalapio funkcija

„WorksheetFunction“ objektu galima iškviesti daugumą „Excel“ funkcijų, kurios pasiekiamos „Excel“ dialogo lange Įterpti funkciją. SUM funkcija yra viena iš jų.

123 Papildoma testavimo funkcijaDiapazonas ("D33") = Application.WorksheetFunction.Sum ("D1: D32")Pabaiga Sub

Funkcijoje SUM galite turėti iki 30 argumentų. Kiekvienas iš argumentų taip pat gali būti susijęs su langelių diapazonu.

Šis toliau pateiktas pavyzdys pridės langelius nuo D1 iki D9

123 Antroji testo suma ()Diapazonas ("D10") = Application.WorksheetFunction.SUM ("D1: D9")Pabaiga Sub

Žemiau pateiktame pavyzdyje bus pridėtas diapazonas D stulpelyje ir diapazonas F stulpelyje. Jei neįvesite Application objekto, jis bus laikomas.

123 Antroji testo suma ()Diapazonas ("D25") = WorksheetFunction.SUM (Diapazonas ("D1: D24"), diapazonas ("F1: F24"))Pabaiga Sub

Atkreipkite dėmesį, kad vieno langelio diapazono atveju formulėje prieš langelius nereikia nurodyti žodžio „Diapazonas“, tai daroma pagal kodą. Tačiau jei naudojate kelis argumentus, turite tai padaryti.

Sumos rezultato priskyrimas kintamajam

Galbūt norėsite savo formulės rezultatą naudoti kitoje kodo vietoje, o ne rašyti tiesiai atgal į „Excel“ diapazoną. Tokiu atveju galite priskirti rezultatą kintamajam, kuris bus naudojamas vėliau jūsų kode.

1234567 Sub AssignSumVariable ()Neryškus rezultatas kaip dvigubas'Priskirkite kintamąjįrezultatas = darbalapio funkcija.SUM (diapazonas ("G2: G7"), diapazonas ("H2: H7"))'Parodyk rezultatą„MsgBox“ „Visa diapazonų suma yra“ ir rezultatasPabaiga Sub

Sudėkite diapazono objektą

Galite priskirti langelių grupę objektui „Range“, o tada naudoti tą diapazono objektą su Darbo lapas Funkcija objektas.

123456789 Sub TestSumRange ()Dim rng As Range“priskirti ląstelių diapazonąNustatyti rng = Diapazonas („D2: E10“)'naudokite diapazoną formulėjeDiapazonas ("E11") = WorksheetFunction.SUM (rng)“paleiskite diapazono objektąNustatyti rng = niekoPabaiga Sub

Sudėkite kelių diapazonų objektus

Panašiai galite apibendrinti kelis diapazono objektus.

123456789101112 Sub TestSumMultipleRanges ()Dim rngA As DiapazonasDim rngB kaip diapazonas“priskirti ląstelių diapazonąNustatyti rngA = Diapazonas („D2: D10“)Nustatykite rngB = Diapazonas („E2: E10“)'naudokite diapazoną formulėjeDiapazonas („E11“) = WorksheetFunction.SUM (rngA, rngB)“paleiskite diapazono objektąNustatyti rngA = NiekoNustatyti rngB = niekoPabaiga Sub

Sumokite visą stulpelį arba eilutę

Taip pat galite naudoti funkciją Sum, kad pridėtumėte visą stulpelį arba visą eilutę

Ši toliau pateikta procedūra sudės visas skaitines langelius D stulpelyje.

123 Antroji testo suma ()Diapazonas ("F1") = WorksheetFunction.SUM (Diapazonas ("D: D")Pabaiga Sub

Nors ši toliau pateikta procedūra sujungs visas 9 eilutės skaitines ląsteles.

123 Antroji testo suma ()Diapazonas ("F2") = WorksheetFunction.SUM (Diapazonas ("9: 9")Pabaiga Sub

Sum a Array

Taip pat galite naudoti „WorksheetFunction.Sum“, kad masyvo reikšmes pridėtumėte.

123456789101112 Sub TestArray ()Dim intA (nuo 1 iki 5) kaip sveikasis skaičiusDim SumArray kaip sveikasis skaičius'užpildyti masyvąintA (1) = 15intA (2) = 20intA (3) = 25intA (4) = 30intA (5) = 40“sudėkite masyvą ir parodykite rezultatą„MsgBox“ darbalapio funkcija.SUM (intA)Pabaiga Sub

Funkcijos „SumIf“ naudojimas

Kita darbalapio funkcija, kurią galima naudoti, yra funkcija SUMIF.

123 Antrasis testasSumIf ()Diapazonas ("D11") = WorksheetFunction.SUMIF (Diapazonas ("C2: C10"), 150, diapazonas ("D2: D10"))Pabaiga Sub

Aukščiau aprašyta procedūra pridės diapazono (D2: D10) langelius tik tuo atveju, jei atitinkamas langelis C stulpelyje yra 150.

Sumos formulė

Kai naudojate Darbo lapasFunkcija.SUMA Norėdami pridėti sumą prie savo darbalapio diapazono, grąžinama statinė suma, o ne lanksti formulė. Tai reiškia, kad pasikeitus „Excel“ skaičiams, vertė, kurią grąžino Darbo lapas Funkcija nepasikeis.

Pirmiau pateiktame pavyzdyje procedūra „TestSum“ pridėjo diapazoną (D2: D10) ir rezultatas buvo įtrauktas į D11. Kaip matote formulės juostoje, šis rezultatas yra figūra, o ne formulė.

Jei kuri nors iš verčių pasikeičia diapazone (D2: D10), rezultatas bus rodomas D11 NE keistis.

Užuot naudoję Darbo lapasFunkcija.SUMA, galite naudoti VBA, kad pritaikytumėte sumos funkciją langeliui naudodami Formulė arba Formulė R1C1 metodus.

Formulės metodas

Formulės metodas leidžia konkrečiai nurodyti langelių diapazoną, pvz .: D2: D10, kaip parodyta žemiau.

123 Sub TestSumFormulaDiapazonas ("D11"). Formulė = "= SUM (D2: D10)"Pabaiga Sub

Formulės R1C1 metodas

„FromulaR1C1“ metodas yra lankstesnis tuo, kad neapsiriboja tam tikru ląstelių diapazonu. Žemiau pateiktas pavyzdys suteiks mums tą patį atsakymą, kaip ir aukščiau.

123 Sub TestSumFormula ()Diapazonas ("D11"). FormulėR1C1 = "= SUM (R [-9] C: R [-1] C)"Pabaiga Sub

Tačiau, kad formulė būtų lankstesnė, kodą galėtume pakeisti taip:

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

Kad ir kur esate savo darbalapyje, formulė sudeda 8 langelius tiesiai virš jo ir įdeda atsakymą į „ActiveCell“. Funkcijos SUM diapazonas turi būti nurodytas naudojant eilutės (R) ir stulpelio (C) sintaksę.

Abu šie metodai leidžia naudoti dinamines „Excel“ formules VBA.

Dabar vietoj reikšmės D11 bus formulė.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave