VBA Round-, RoundUp- en RoundDown-functies

VBA-ronde

De VBA Round-functie rondt getallen af ​​op een bepaald aantal cijfers.

Syntaxis van de VBA-rondefunctie

De syntaxis van de VBA-rondefunctie is:

Round(Expression, [Decimal_places]) waarbij:

  • Expressie - Het getal dat moet worden afgerond.
  • decimale_plaatsen (Optioneel) - Een geheel getal dat het aantal decimalen aangeeft dat moet worden afgerond. De waarde moet groter dan of gelijk zijn aan 0 (>=0). Indien blanco, wordt de standaardwaarde 0 gebruikt, wat betekent dat de functie afrondt op het dichtstbijzijnde gehele getal.

Laten we dus naar een voorbeeld kijken, zodat u kunt zien hoe de VBA Round-functie werkt, afgerond op 1 decimaal:

12345 Subronde1()Msgbox-ronde (7,25, 1)Einde sub

De resulterende MessageBox:

VBA rond een variabele

In het bovenstaande voorbeeld hebben we het af te ronden getal rechtstreeks in de functie ingevoerd, maar meestal zou u in plaats daarvan een variabele afronden. Het volgende is een voorbeeld waarin in plaats daarvan een variabele wordt gebruikt:

Opmerking: we gebruiken het variabeletype Double om decimale waarden op te slaan.

123456789 Sub RoundUsingVariable()Dim aantal stuks als dubbelaantal stuks = 7.25MsgBox "De waarde is " & Round(unitcount, 1)Einde sub

Het resultaat is:

VBA-afrondingsresultaten

Werkelijk aantal Aantal decimalen Resultaat
7.25 0 7
7.25 1 7.2
7.25 2 7.25
-7.25 1 -7.2
-7.25 2 -7.25

Moe van het zoeken naar voorbeelden van VBA-codes? Probeer AutoMacro!

VBA Ronde celwaarde

U kunt een celwaarde ook rechtstreeks in VBA afronden:

123 Sub RoundCell()Bereik ("A1"). Waarde = Rond (Bereik ("A1"). Waarde, 2)Einde sub

VBA RoundUp-functie

Stel dat u een getal naar boven wilt afronden met VBA. Er is geen ingebouwde VBA RoundUp-equivalente functie, maar wat u kunt doen is de Excel RoundUp-werkbladfunctie aanroepen vanuit uw VBA-code:

1 roundupUnitcount = Application.WorksheetFunction.RoundUp(aantal eenheden, 3)

De werkbladfuncties van Excel zijn beschikbaar voor gebruik in VBA, door het gebruik van de WerkbladFunctie object. De enige werkbladfuncties die u niet kunt aanroepen, zijn die die al een ingebouwd VBA-equivalent hebben.

Een herinnering aan de syntaxis van de Excel-werkblad RoundUp-functie:

ROUNDUP(Getal; Cijfers) waarbij:

  • Getal - Het getal dat u naar boven wilt afronden.
  • Cijfers - Het aantal cijfers dat u wilt afronden.

Laten we dus een voorbeeld bekijken, zodat u kunt zien hoe u toegang krijgt tot de RoundUp-werkbladfunctie in uw VBA-code:

12345678910111213 Sub RoundUp()Dim aantal stuks als dubbelDim roundupEenheid tellen als dubbelaantal eenheden = 7.075711roundupUnitcount = Application.WorksheetFunction.RoundUp(aantal eenheden, 4)MsgBox "De waarde is " & roundupUnitcountEinde sub

Het resultaat is:

RoundUp naar het dichtstbijzijnde gehele getal

U kunt naar boven afronden op het dichtstbijzijnde gehele getal door 0 op te geven als het aantal decimalen:

12345 Sub RoundUpWhole()MsgBox Application.WorksheetFunction.RoundUp(7.1, 0)Einde sub

Het resultaat leverde:

VBA-programmering | Code Generator werkt voor u!

Resultaten van RoundUp-functie

Werkelijk aantal cijfers Resultaat
7.075711 0 8
7.075711 1 7.1
7.075711 2 7.08
7.075711 3 7.076
7.075711 -1 10
7.075711 -2 100
7.075711 -3 1000

VBA RoundDown-functie

Stel dat u een getal naar beneden wilt afronden met VBA. Er is ook geen ingebouwde VBA RoundDown-equivalente functie, maar nogmaals, wat u zou doen, is de Excel RoundDown-werkbladfunctie aanroepen vanuit uw VBA-code.

Een herinnering aan de syntaxis van de Excel-werkblad RoundDown-functie:

AFRONDEN (Getal; Cijfers) waarbij:

• Getal - Het getal dat u naar beneden wilt afronden.
• Cijfers - Het aantal cijfers dat u wilt afronden.

Laten we dus een voorbeeld bekijken, zodat u kunt zien hoe u toegang krijgt tot de RoundDown-werkbladfunctie in uw VBA-code:

12345678910111213 Sub RoundDown()Dim aantal stuks als dubbelDim rounddownEenheid als dubbelaantal stuks = 5.225193rounddownUnitcount = Application.WorksheetFunction.RoundDown(unitcount, 4)MsgBox "De waarde is " & rounddownUnitcountEinde sub

Het resultaat is:

Afronden naar het dichtstbijzijnde gehele getal

U kunt naar beneden afronden op het dichtstbijzijnde gehele getal door 0 op te geven als het aantal decimalen:

12345 Sub RoundDownGeheel()MsgBox Application.WorksheetFunction.RoundDown(7.8, 0)Einde sub

Het resultaat is:

Resultaten van functie RoundDown

Werkelijk aantal cijfers Resultaat
5.225193 0 5
5.225193 1 5.2
5.225193 2 5.22
5.225193 3 5.225
5.225193 -1 0
5.225193 -2 0
5.225193 -3 0

VBA-programmering | Code Generator werkt voor u!

Andere VBA-afrondingsfuncties

VBA-plafond - Afronden tot een gespecificeerde betekenis

VBA heeft geen equivalent van de Ceiling.Math-functie, dus als u een getal naar boven wilt afronden op het dichtstbijzijnde gehele getal of op het dichtstbijzijnde gespecificeerde veelvoud van significantie, dan kunt u Excel's Ceiling.Math-werkbladfunctie oproepen vanuit uw VBA-code.

Een herinnering aan de syntaxis van de Excel-werkblad Ceiling.Math-functie:

PLAFOND.MATH(Getal, [Betekenis], [Modus]) waarbij:

  • Getal - Het getal dat u naar boven wilt afronden.
  • Betekenis (Optioneel) - Het veelvoud waarop u uw getal wilt afronden.
  • Modus (Optioneel) - Bepaalt of negatieve getallen naar of van nul worden afgerond.

Laten we dus een voorbeeld bekijken, zodat u kunt zien hoe u toegang krijgt tot de functie Ceiling.Math Worksheet in uw VBA-code:

12345678910111213 Sub RoundUpToSignificance()Dim aantal stuks als dubbelDim plafondwiskundeEenheid als dubbelaantal eenheden = 4.1221plafondmathUnitcount = Application.WorksheetFunction.Ceiling_Math(aantal eenheden, 5)MsgBox "De waarde is " & ceilingmathUnitcountEinde sub

Het resultaat is:

VBA RoundUp naar gespecificeerde significantieresultaten

Werkelijk aantal Betekenis Modus Resultaat
4.1221 5
4.1221 3 6
4.1221 50 50
-4.1221 3 -3
-4.1221 3 -1 -6

VBA-vloer - Afronden naar een gespecificeerde betekenis

VBA heeft ook geen equivalent van de Floor.Math-functie. Maar nogmaals, als u een getal naar beneden wilt afronden op het dichtstbijzijnde gehele getal of op het dichtstbijzijnde gespecificeerde veelvoud van significantie, dan kunt u Excel's Floor.Math-werkbladfunctie vanuit VBA aanroepen.

Een herinnering aan de syntaxis van het Excel-werkblad Floor.Math-functie:

VERDIEPING.MATH(Getal, [Betekenis], [Modus]) waarbij:
• Getal - Het getal dat u naar beneden wilt afronden.
• Betekenis (Optioneel) - Het veelvoud waarop u uw getal wilt afronden.
• Modus (Optioneel) - Bepaalt of negatieve getallen naar of van nul worden afgerond.

Laten we dus een voorbeeld bekijken, zodat u kunt zien hoe u toegang krijgt tot de Floor.Math-werkbladfunctie in uw VBA-code:

1234567891011 Sub RoundDownToSignificance()Dim aantal stuks als dubbelDim vloerwiskundeEenheid als dubbelaantal stuks = 4.55555559floormathUnitcount = Application.WorksheetFunction.Floor_Math(aantal eenheden, 2)MsgBox "De waarde is " & floormathUnitcountEinde sub

Het resultaat is:

VBA RoundDown naar gespecificeerde significantieresultaten

Werkelijk aantal Betekenis Modus Resultaat
4.55555559 4
4.55555559 3 3
4.55555559 50 0
-4.55555559 3 -6
-4.55555559 3 -1 -3

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave