VBA Round, RoundUp og RoundDown -funksjoner

VBA -runde

VBA -rundefunksjonen avrunder tallene til et angitt antall sifre.

Syntaks for VBA Round -funksjonen

Syntaksen til VBA Round -funksjonen er:

Round (Expression, [Decimal_places]) hvor:

  • Uttrykk - tallet som skal rundes.
  • Desimal_places (Valgfri) - Et heltall som angir antall desimaler som skal rundes. Verdien må være større enn eller lik 0 (> = 0). Hvis det er tomt, brukes standard 0, noe som betyr at funksjonen avrunder til nærmeste heltall.

Så la oss se på et eksempel slik at du kan se hvordan VBA Round -funksjonen fungerer, avrunding til 1 desimal:

12345 Delrunde1 ()Msgbox Round (7,25, 1)Slutt Sub

Den resulterende MessageBox:

VBA runde en variabel

I eksemplet ovenfor skrev vi inn tallet som skal avrundes direkte i funksjonen, men vanligvis vil du avrunde en variabel i stedet. Følgende er et eksempel ved å bruke en variabel i stedet:

Merk: Vi bruker typen Double variabel for å lagre desimalverdier.

123456789 Sub RoundUsingVariable ()Dim unitcount as Doubleunitcount = 7,25MsgBox "Verdien er" og rund (enhetstall, 1)Slutt Sub

Resultatet er:

VBA -avrundingsresultater

Faktisk nummer Antall desimaler 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

Lei av å søke etter eksempler på VBA -kode? Prøv AutoMacro!

VBA runde celleverdi

Du kan også runde en celleverdi direkte i VBA:

123 Sub RoundCell ()Område ("A1"). Verdi = runde (område ("A1"). Verdi, 2)Slutt Sub

VBA RoundUp -funksjon

La oss si at du vil avrunde et tall med VBA. Det er ingen innebygd VBA RoundUp-ekvivalentfunksjon, i stedet er det du kan gjøre å kalle Excel RoundUp-regnearkfunksjonen fra VBA-koden:

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

Excel -regnearkfunksjonene er tilgjengelige for bruk i VBA, ved bruk av Arbeidsark Funksjon gjenstand. De eneste regnearkfunksjonene du ikke kan ringe, er de som allerede har en innebygd VBA-ekvivalent.

En påminnelse om syntaksen til Excel Worksheet RoundUp -funksjonen:

ROUNDUP (tall, sifre) der:

  • Nummer - tallet du vil avrunde.
  • Sifre - Antall sifre du vil avrunde tallet.

Så la oss se på et eksempel, slik at du kan se hvordan du får tilgang til RoundUp -regnearkfunksjonen i VBA -koden din:

12345678910111213 Sub RoundUp ()Dim unitcount as DoubleDim roundup Antall som dobbeltunitcount = 7.075711roundupUnitcount = Application.WorksheetFunction.RoundUp (unitcount, 4)MsgBox "Verdien er" og roundupUnitcountSlutt Sub

Resultatet er:

Runde opp til nærmeste hele tall

Du kan avrunde til nærmeste hele tall ved å angi 0 som antall desimaler:

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

Resultatet ble levert:

VBA -programmering | Kodegenerator fungerer for deg!

RoundUp -funksjonsresultater

Faktisk nummer Siffer 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 -funksjon

La oss si at du vil avrunde et tall med VBA. Det er heller ingen innebygd VBA RoundDown-tilsvarende funksjon, i stedet igjen, det du ville gjøre er å kalle Excel RoundDown-regnearkfunksjonen fra VBA-koden.

En påminnelse om syntaksen til Excel -regnearket RoundDown -funksjonen:

NEDRUNDT (tall, sifre) der:

• Nummer - tallet du vil avrunde nedover.
• Siffer - Antall siffer du vil avrunde tallet.

Så la oss se på et eksempel, slik at du kan se hvordan du får tilgang til RoundDown -regnearkfunksjonen i VBA -koden din:

12345678910111213 Sub RoundDown ()Dim unitcount as DoubleDim rounddown Antall som dobbeltunitcount = 5.225193rounddownUnitcount = Application.WorksheetFunction.RoundDown (unitcount, 4)MsgBox "Verdien er" og rounddownUnitcountSlutt Sub

Resultatet er:

Rund ned til nærmeste hele tall

Du kan runde ned til nærmeste hele tall ved å angi 0 som antall desimaler:

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

Resultatet er:

RoundDown -funksjonsresultater

Faktisk nummer Siffer 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 fungerer for deg!

Andre VBA -avrundingsfunksjoner

VBA -tak - RoundUp til en spesifisert betydning

VBA har ikke en Ceiling.Math -funksjonekvivalent, så hvis du vil avrunde et tall til nærmeste heltall eller til det nærmeste angitte multiplumet av betydning, kan du ringe Excel's Ceiling.Math -regnearkfunksjon fra VBA -koden.

En påminnelse om syntaksen til Excel -regnearket Ceiling.Math -funksjon:

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

  • Nummer - tallet du vil avrunde.
  • Betydning (Valgfri) - Multipelen du vil at nummeret ditt skal avrundes til.
  • Modus (Valgfri) - Kontrollerer om negative tall er avrundet mot eller bort fra null.

Så la oss se på et eksempel, slik at du kan se hvordan du får tilgang til Ceiling.Math -regnearkfunksjonen i VBA -koden din:

12345678910111213 Sub RoundUpToSignificance ()Dim unitcount as DoubleDim takmatte Antall som dobbeltunitcount = 4.1221ceilingmathUnitcount = Application.WorksheetFunction.Ceiling_Math (unitcount, 5)MsgBox "Verdien er" & ceilingmathUnitcountSlutt Sub

Resultatet er:

VBA RoundUp til spesifiserte signifikansresultater

Faktisk nummer Betydning Modus 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 spesifisert betydning

VBA har heller ikke en Floor.Math -funksjon tilsvarende. Men igjen, hvis du vil avrunde et tall ned til nærmeste heltall eller til det nærmeste angitte multiplumet av betydning, kan du ringe Excel's Floor.Math -regnearkfunksjon fra VBA.

En påminnelse om syntaksen til Excel Worksheet Floor.Math -funksjonen:

FLOOR.MATH (Nummer, [Betydning], [Mode]) der:
• Nummer - tallet du vil avrunde.
• Betydning (Valgfri) - Multipelen du vil at nummeret ditt skal avrundes til.
• Modus (Valgfritt) - Kontrollerer om negative tall er avrundet mot eller bort fra null.

Så la oss se på et eksempel, slik at du kan se hvordan du får tilgang til Floor.Math -regnearkfunksjonen i VBA -koden din:

1234567891011 Sub RoundDownToSignificance ()Dim unitcount as DoubleDim gulvmatte Antall som dobbeltunitcount = 4.55555559floormathUnitcount = Application.WorksheetFunction.Floor_Math (unitcount, 2)MsgBox "Verdien er" & floormathUnitcountSlutt Sub

Resultatet er:

VBA RoundDown til spesifiserte signifikansresultater

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

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

wave wave wave wave wave