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 |