VBA Sum -funktion (intervaller, kolonner og mere)

Denne vejledning viser dig, hvordan du bruger Excel Sum -funktionen i VBA

Summefunktionen er en af ​​de mest anvendte Excel -funktioner og sandsynligvis den første, som Excel -brugere lærer at bruge. VBA har faktisk ikke en ækvivalent - en bruger skal bruge den indbyggede Excel -funktion i VBA ved hjælp af WorkSheetFunction objekt.

Sum arbejdsarkFunktion

WorksheetFunction -objektet kan bruges til at kalde de fleste Excel -funktioner, der er tilgængelige i dialogboksen Indsæt funktion i Excel. SUM -funktionen er en af ​​dem.

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

Du kan have op til 30 argumenter i SUM -funktionen. Hvert af argumenterne kan også referere til en række celler.

Dette eksempel nedenfor vil tilføje celler D1 til D9

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

Nedenstående eksempel tilføjer et område i kolonne D og et område i kolonne F. Hvis du ikke skriver Application -objektet, antages det.

123 Sub TestSum ()Range ("D25") = WorksheetFunction.SUM (Range ("D1: D24"), Range ("F1: F24"))Afslut Sub

Bemærk for et enkelt celleområde, at du ikke behøver at angive ordet 'Range' i formlen foran cellerne, det antages af koden. Men hvis du bruger flere argumenter, skal du gøre det.

Tildeling af et sumresultat til en variabel

Du vil måske bruge resultatet af din formel andre steder i koden frem for at skrive det direkte tilbage til og Excel -område. Hvis dette er tilfældet, kan du tildele resultatet til en variabel, der skal bruges senere i din kode.

1234567 Sub AssignSumVariable ()Dim resultat som dobbelt'Tildel variablenresult = WorksheetFunction.SUM (Range ("G2: G7"), Range ("H2: H7"))'Vis resultatetMsgBox "Det samlede antal intervaller er" og resultatAfslut Sub

Sum et områdeobjekt

Du kan tildele en gruppe celler til Range -objektet og derefter bruge dette Range -objekt med ArbejdsarkFunktion objekt.

123456789 Sub TestSumRange ()Dim rng Som område'tildele celleområdetIndstil rng = Range ("D2: E10")'brug området i formlenOmråde ("E11") = WorksheetFunction.SUM (rng)'frigiv rækkeviddeobjektetIndstil rng = IntetAfslut Sub

Sum flere rækkeviddeobjekter

På samme måde kan du opsummere flere områdeobjekter.

123456789101112 Sub TestSumMultipleRanges ()Dim rngA As RangeDim rngB som område'tildele celleområdetIndstil rngA = Range ("D2: D10")Indstil rngB = Range ("E2: E10")'brug området i formlenOmråde ("E11") = WorksheetFunction.SUM (rngA, rngB)'frigiv rækkeviddeobjektetIndstil rngA = IntetIndstil rngB = IntetAfslut Sub

Sum hele kolonnen eller rækken

Du kan også bruge Sum -funktionen til at tilføje en hel kolonne eller en hel række

Denne procedure nedenfor tilføjer alle de numeriske celler i kolonne D.

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

Selvom denne procedure nedenfor tilføjer alle de numeriske celler i række 9.

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

Sum et array

Du kan også bruge WorksheetFunction.Sum til at tilføje værdier i et array.

123456789101112 Sub TestArray ()Dim intA (1 til 5) som heltalDim SumArray som heltal'udfyld matrixenintA (1) = 15intA (2) = 20intA (3) = 25intA (4) = 30intA (5) = 40'tilføj arrayet og vis resultatetMsgBox WorksheetFunction.SUM (intA)Afslut Sub

Brug af SumIf -funktionen

En anden regnearksfunktion, der kan bruges, er SUMIF -funktionen.

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

Fremgangsmåden ovenfor vil kun tilføje cellerne i område (D2: D10), hvis den tilsvarende celle i kolonne C = 150.

Sum formel

Når du bruger ArbejdsarkFunktion.SUM for at tilføje en sum til et område i dit regneark returneres en statisk sum, ikke en fleksibel formel. Det betyder, at når dine tal i Excel ændres, den værdi, der er returneret af ArbejdsarkFunktion vil ikke ændre sig.

I eksemplet ovenfor har proceduren TestSum sammenlagt rækkevidde (D2: D10), og resultatet er blevet sat i D11. Som du kan se i formellinjen, er dette resultat en figur og ikke en formel.

Hvis nogen af ​​værdierne ændres derfor i området (D2: D10), vil resultatet i D11 blive IKKE lave om.

I stedet for at bruge ArbejdsarkFunktion.SUM, kan du bruge VBA til at anvende en sumfunktion på en celle ved hjælp af Formel eller FormelR1C1 metoder.

Formel metode

Formelmetoden giver dig mulighed for at pege specifikt på en række celler, f.eks .: D2: D10 som vist nedenfor.

123 Sub TestSumFormulaOmråde ("D11"). Formel = "= SUM (D2: D10)"Afslut Sub

FormulaR1C1 Metode

FromulaR1C1 -metoden er mere fleksibel, idet den ikke begrænser dig til et bestemt antal celler. Nedenstående eksempel vil give os det samme svar som ovenstående.

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

For at gøre formlen mere fleksibel kunne vi dog ændre koden til at se sådan ud:

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

Uanset hvor du er i dit regneark, vil formlen derefter tilføje de 8 celler direkte over det og placere svaret i din ActiveCell. Området inde i SUM -funktionen skal refereres til ved hjælp af rækken (R) og kolonnen (C) syntaks.

Begge disse metoder giver dig mulighed for at bruge dynamiske Excel -formler inden for VBA.

Der vil nu være en formel i D11 i stedet for en værdi.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave