VBA Round, RoundUp og RoundDown -funktioner

VBA -runde

VBA -rundefunktionen afrunder tal til et bestemt antal cifre.

Syntaks for VBA Round -funktionen

Syntaksen for VBA Round -funktionen er:

Round (Expression, [Decimal_places]) hvor:

  • Udtryk - tallet, der skal rundes.
  • Decimal_places (Valgfri) - Et helt tal, der angiver antallet af decimaler, der skal rundes. Værdien skal være større end eller lig med 0 (> = 0). Hvis den er blank, bruges standardværdien 0, hvilket betyder, at funktionen afrunder til det nærmeste heltal.

Så lad os se på et eksempel, så du kan se, hvordan VBA Round -funktionen fungerer og afrunder til 1 decimal:

12345 Underrunde1 ()Msgbox Round (7,25, 1)Afslut Sub

Den resulterende MessageBox:

VBA Round a Variable

I ovenstående eksempel indtastede vi det skal afrundede tal direkte i funktionen, men normalt vil du i stedet afrunde en variabel. Følgende er et eksempel ved hjælp af en variabel i stedet:

Bemærk: Vi bruger typen Double -variabel for at gemme decimalværdier.

123456789 UnderrundeUsingVariable ()Dim enhedstal som dobbeltenhedstal = 7,25MsgBox "Værdien er" og rund (enhedstal, 1)Afslut Sub

Resultatet er:

VBA -afrundingsresultater

Faktisk nummer Antal decimaler Resultat
7.25 0 7
7.25 1 7.2
7.25 2 7.25
-7.25 1 -7.2
-7.25 2 -7.25

Træt af at søge efter eksempler på VBA -kode? Prøv AutoMacro!

VBA -rundcelleværdi

Du kan også afrunde en celleværdi direkte i VBA:

123 Sub RoundCell ()Område ("A1"). Værdi = runde (område ("A1"). Værdi, 2)Afslut Sub

VBA RoundUp -funktion

Lad os sige, at du vil afrunde et tal op ved hjælp af VBA. Der er ingen indbygget VBA RoundUp-ækvivalent funktion, i stedet kan du kalde Excel RoundUp-regnearksfunktionen fra din VBA-kode:

1 roundupUnitcount = Application.WorksheetFunction.RoundUp (unitcount, 3)

Excels regnearksfunktioner er tilgængelige til brug i VBA ved hjælp af ArbejdsarkFunktion objekt. De eneste regnearksfunktioner, som du ikke kan kalde, er dem, der allerede har en indbygget VBA-ækvivalent.

En påmindelse om syntaksen for Excel -regneark RoundUp -funktionen:

ROUNDUP (tal, cifre) hvor:

  • Nummer - Det nummer, du gerne vil afrunde.
  • Cifre - Antallet af cifre, du gerne vil afrunde tallet.

Så lad os se på et eksempel, så du kan se, hvordan du får adgang til RoundUp -regnearksfunktionen i din VBA -kode:

12345678910111213 Sub RoundUp ()Dim enhedstal som dobbeltDim roundupUntælling som dobbeltenhedstal = 7.075711roundupUnitcount = Application.WorksheetFunction.RoundUp (unitcount, 4)MsgBox "Værdien er" & roundupUnitcountAfslut Sub

Resultatet er:

RoundUp til det nærmeste hele nummer

Du kan afrunde til nærmeste hele tal ved at angive 0 som antallet af decimaler:

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

Resultatet blev leveret:

VBA -programmering | Kodegenerator virker for dig!

RoundUp -funktionsresultater

Faktisk nummer Cifre Resultat
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 -funktion

Lad os sige, at du vil afrunde et tal med VBA. Der er heller ingen indbygget VBA RoundDown-tilsvarende funktion, i stedet igen, hvad du ville gøre, er at kalde Excel RoundDown-regnearksfunktionen fra din VBA-kode.

En påmindelse om syntaksen for Excel -regneark RoundDown -funktionen:

NEDRUNDT (tal, cifre) hvor:

• Nummer - Det tal, du gerne vil afrunde.
• Cifre - Antallet af cifre, du gerne vil afrunde tallet.

Så lad os se på et eksempel, så du kan se, hvordan du får adgang til RoundDown -regnearksfunktionen i din VBA -kode:

12345678910111213 Sub RoundDown ()Dim enhedstal som dobbeltDim rounddownUntælling som dobbeltenhedstal = 5.225193rounddownUnitcount = Application.WorksheetFunction.RoundDown (unitcount, 4)MsgBox "Værdien er" & rounddownUnitcountAfslut Sub

Resultatet er:

Rund ned til det nærmeste hele nummer

Du kan afrunde til nærmeste hele tal ved at angive 0 som antallet af decimaler:

12345 Sub RoundDownWhole ()MsgBox Application.WorksheetFunction.RoundDown (7.8, 0)Afslut Sub

Resultatet er:

RoundDown -funktionsresultater

Faktisk nummer Cifre Resultat
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 | Kodegenerator virker for dig!

Andre VBA -afrundingsfunktioner

VBA -loft - RoundUp til en specificeret betydning

VBA har ikke en Ceiling.Math -funktion ækvivalent, så hvis du vil afrunde et tal op til det nærmeste heltal eller til det nærmeste angivne multiplum af betydning, kan du kalde Excel's Ceiling.Math -regnearksfunktion fra din VBA -kode.

En påmindelse om syntaksen i Excel -regnearket Ceiling.Math -funktion:

CEILING.MATH (Nummer, [Betydning], [Mode]) hvor:

  • Nummer - Det nummer, du gerne vil afrunde.
  • Betydning (Valgfri) - Det multiplum, som du vil have dit nummer afrundet til.
  • Mode (Valgfri) - Kontrollerer, om negative tal afrundes mod eller væk fra nul.

Så lad os se på et eksempel, så du kan se, hvordan du får adgang til Ceiling.Math -regnearksfunktionen i din VBA -kode:

12345678910111213 Sub RoundUpToSignificance ()Dim enhedstal som dobbeltDim loftsmatte Antal som dobbeltenhedstal = 4.1221ceilingmathUnitcount = Application.WorksheetFunction.Ceiling_Math (unitcount, 5)MsgBox "Værdien er" & ceilingmathUnitcountAfslut Sub

Resultatet er:

VBA RoundUp til specificerede signifikansresultater

Faktisk nummer Betydning Mode Resultat
4.1221 5
4.1221 3 6
4.1221 50 50
-4.1221 3 -3
-4.1221 3 -1 -6

VBA Floor - RoundDown til en specificeret betydning

VBA har heller ikke en Floor.Math -funktionsækvivalent. Men igen, hvis du vil afrunde et tal ned til det nærmeste heltal eller til det nærmeste angivne multiplum af betydning, kan du kalde Excel's Floor.Math -regnearksfunktion fra VBA.

En påmindelse om syntaksen i Excel -regnearksgulvet.Math -funktion:

FLOOR.MATH (Nummer, [Betydning], [Mode]) hvor:
• Nummer - Det tal, du gerne vil afrunde.
• Betydning (Valgfri) - Det multiplum, som du vil have dit nummer afrundet til.
• Tilstand (Valgfrit) - Kontrollerer, om negative tal afrundes mod eller væk fra nul.

Så lad os se på et eksempel, så du kan se, hvordan du får adgang til funktionen Floor.Math -regneark i din VBA -kode:

1234567891011 Sub RoundDownToSignificance ()Dim enhedstal som dobbeltDim floormathUnitcount as Doubleenhedstal = 4.55555559floormathUnitcount = Application.WorksheetFunction.Floor_Math (unitcount, 2)MsgBox "Værdien er" & floormathUnitcountAfslut Sub

Resultatet er:

VBA Round Ned til specificerede signifikansresultater

Faktisk nummer Betydning Mode Resultat
4.55555559 4
4.55555559 3 3
4.55555559 50 0
-4.55555559 3 -6
-4.55555559 3 -1 -3

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

wave wave wave wave wave