VBA sumfunksjon (områder, kolonner og mer)

Denne opplæringen viser deg hvordan du bruker Excel Sum -funksjonen i VBA

Sumfunksjonen er en av de mest brukte Excel -funksjonene, og sannsynligvis den første som Excel -brukere lærer å bruke. VBA har faktisk ikke en tilsvarende - en bruker må bruke den innebygde Excel -funksjonen i VBA ved å bruke WorkSheetFunction gjenstand.

Sum arbeidsarkFunksjon

WorksheetFunction -objektet kan brukes til å ringe de fleste Excel -funksjonene som er tilgjengelige i dialogboksen Sett inn funksjon i Excel. SUM -funksjonen er en av dem.

123 Sub TestFunksjonOmråde ("D33") = Application.WorksheetFunction.Sum ("D1: D32")Slutt Sub

Du kan ha opptil 30 argumenter i SUM -funksjonen. Hvert av argumentene kan også referere til en rekke celler.

Dette eksemplet nedenfor vil legge til cellene D1 til D9

123 Sub TestSum ()Område ("D10") = Application.WorksheetFunction.SUM ("D1: D9")Slutt Sub

Eksemplet nedenfor vil legge til et område i kolonne D og et område i kolonne F. Hvis du ikke skriver applikasjonsobjektet, antas det.

123 Sub TestSum ()Område ("D25") = WorksheetFunction.SUM (Område ("D1: D24"), Område ("F1: F24"))Slutt Sub

Legg merke til for et enkelt celleområde at du ikke trenger å spesifisere ordet ‘Range’ i formelen foran cellene, det antas av koden. Men hvis du bruker flere argumenter, må du gjøre det.

Tilordne et sumresultat til en variabel

Det kan være lurt å bruke resultatet av formelen din andre steder i koden i stedet for å skrive det direkte tilbake til og Excel Range. Hvis dette er tilfelle, kan du tilordne resultatet til en variabel som skal brukes senere i koden.

1234567 Sub AssignSumVariable ()Dim resultat som Double'Tilordne variabelenresult = WorksheetFunction.SUM (Range ("G2: G7"), Range ("H2: H7"))'Vis resultatetMsgBox "Totalen av områdene er" og resultatSlutt Sub

Sum et rekkeviddeobjekt

Du kan tilordne en gruppe celler til Range -objektet, og deretter bruke det Range -objektet med Arbeidsark Funksjon gjenstand.

123456789 Sub TestSumRange ()Dim rng As Range'tilordne celleområdetSett rng = Range ("D2: E10")'bruk området i formelenOmråde ("E11") = WorksheetFunction.SUM (rng)'slipp rekkeviddeobjektetSett rng = ingentingSlutt Sub

Sum flere objektområder

På samme måte kan du summere flere rekkeviddeobjekter.

123456789101112 Sub TestSumMultipleRanges ()Dim rngA As RangeDim rngB som område'tilordne celleområdetSett rngA = Range ("D2: D10")Sett rngB = Range ("E2: E10")'bruk området i formelenOmråde ("E11") = WorksheetFunction.SUM (rngA, rngB)'slipp rekkeviddeobjektetSett rngA = IngentingSett rngB = IngentingSlutt Sub

Sum hele kolonnen eller raden

Du kan også bruke Sum -funksjonen til å legge til en hel kolonne eller en hel rad

Denne fremgangsmåten nedenfor vil legge til alle de numeriske cellene i kolonne D.

123 Sub TestSum ()Område ("F1") = WorksheetFunction.SUM (område ("D: D")Slutt Sub

Selv om denne fremgangsmåten nedenfor vil legge til alle de numeriske cellene i rad 9.

123 Sub TestSum ()Område ("F2") = WorksheetFunction.SUM (område ("9: 9")Slutt Sub

Sum en matrise

Du kan også bruke WorksheetFunction.Sum til å legge opp verdier i en matrise.

123456789101112 Sub TestArray ()Dim intA (1 til 5) som heltallDim SumArray som heltall'fyll ut matrisenintA (1) = 15intA (2) = 20intA (3) = 25intA (4) = 30intA (5) = 40'legg til matrisen og vis resultatetMsgBox WorksheetFunction.SUM (intA)Slutt Sub

Bruke SumIf -funksjonen

En annen regnearkfunksjon som kan brukes er SUMIF -funksjonen.

123 Sub TestSumIf ()Range ("D11") = WorksheetFunction.SUMIF (Range ("C2: C10"), 150, Range ("D2: D10"))Slutt Sub

Fremgangsmåten ovenfor vil bare legge til cellene i område (D2: D10) hvis den tilsvarende cellen i kolonne C = 150.

Sum formel

Når du bruker Regneark Funksjon.SUM for å legge til en sum i et område i regnearket, returneres en statisk sum, ikke en fleksibel formel. Dette betyr at når tallene i Excel endres, vil verdien som er returnert av Arbeidsark Funksjon vil ikke endre seg.

I eksemplet ovenfor har prosedyren TestSum lagt opp rekkevidde (D2: D10) og resultatet er satt i D11. Som du kan se i formellinjen, er dette resultatet en figur og ikke en formel.

Hvis noen av verdiene derfor endres i området (D2: D10), vil resultatet i D11 IKKE endring.

I stedet for å bruke Regneark Funksjon.SUM, kan du bruke VBA til å bruke en sumfunksjon på en celle ved hjelp av Formel eller FormelR1C1 metoder.

Formelmetode

Formelmetoden lar deg peke spesifikt på et område av celler, for eksempel: D2: D10 som vist nedenfor.

123 Sub TestSumFormulaOmråde ("D11"). Formel = "= SUMME (D2: D10)"Slutt Sub

FormulaR1C1 Metode

FromulaR1C1 -metoden er mer fleksibel ved at den ikke begrenser deg til et angitt celleområde. Eksemplet nedenfor gir oss det samme svaret som det ovenfor.

123 Sub TestSumFormula ()Område ("D11"). FormulaR1C1 = "= SUM (R [-9] C: R [-1] C)"Slutt Sub

For å gjøre formelen mer fleksibel, kan vi imidlertid endre koden slik at den ser slik ut:

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

Uansett hvor du er i regnearket, vil formelen legge til de 8 cellene rett over det og plassere svaret i ActiveCell. Området inne i SUM -funksjonen må refereres til ved bruk av rad (R) og kolonne (C) syntaks.

Begge disse metodene lar deg bruke dynamiske Excel -formler i VBA.

Det vil nå være en formel i D11 i stedet for en verdi.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave