Excel VBA-formatnummer

VBA har en innebygd funksjon for formatering av numre. Navnet på den innebygde funksjonen er “Format Number”. Denne funksjonen formaterer det spesifikke nummeret i et format som kreves av brukeren.
La oss først forstå hva som er nummerformatering før vi går foran. Nummerformatering betyr egentlig at det spesifikke nummeret skal vises på en bestemt måte. For eksempel, hvis du vil se et spesifikt tall i form av to desimaler (150, 55), eller du vil se det samme tallet når det gjelder ingen desimaler (150). Dette er bare eksempler. I utgangspunktet kan vi kategorisere disse tallformatene i fire kategorier.

  • Desimalpoeng
  • Negative tall i parentes
  • Ledende sifre
  • Gruppesifre

Vi skal lære alle formattingene i VBA ved hjelp av eksempler. Men først, la oss se på syntaks for VBA-funksjon for formatnummer.

Så siden du kan se syntaks for VBA-funksjon for formatnummer i skjermbildet ovenfor, la oss bryte den funksjonen og forstå hver del av funksjonen.

  1. Uttrykk: Som du kan se er den første delen av funksjonen et uttrykk som ikke er annet enn tallet vi vil formatere.
  2. Numerisk siffer etter desimalet: Den andre delen av funksjonen ber om antall sifre for tallet du vil se etter desimalet.
  3. Ledende siffer: Dette er nyttig når tallet er mellom -1 og 1, noe som betyr at tallet er mer enn -1 og mindre enn 1. For eksempel 0, 25.

Så hvis du vil se verdien null før desimaltegnet, må du sette inn argument i funksjonen som SANN eller -1. Resultatet blir 0, 55.

Men hvis du setter inn verdien i argumentet som FALSE eller 0, vil resultatet .55.

  1. Bruk overordnet for negative tall : Denne delen brukes til negative tall. Hvis du vil se de negative tallene i en parentes, bør du oppgi et argument som SANN eller -1, og resultatet blir (156). Men når du oppgir argumentet som FALSE eller 0, blir resultatet -156.
  2. Gruppesifre : Dette er den siste delen av funksjonen som brukes for de tusen skillene. Så hvis du vil se tallene med en tusen skillesett, bør du oppgi argumentet som SANN eller -1, og resultatet blir 52 000. Men hvis du gir det samme argumentet som FALSE eller 0, blir resultatet som 52000.

Hvordan formatere nummer ved hjelp av VBA-kode?

Når du forstår de forskjellige formene for nummerformatering og den innebygde VBA-funksjonen i nummerformat, kan vi gå videre og se hvordan vi kan bruke dette ved hjelp av eksempler.

Du kan laste ned denne VBA Format Number Excel Template her - VBA Format Number Excel Template

Før du går til eksemplene, følg de grunnleggende trinnene nedenfor hvis du er ny på VBA-makro. Du kan sette inn kodene nedenfor i VBA-modulen.

Trinn 1: Lag et makronavn som er den første linjen i koden som du kan se på skjermdumpen.

Trinn 2: Erklær en av variablene som streng fordi resultatet gitt av VBA-formatnummerfunksjonen er streng.

Kode:

 Sub Format_Number_Example1 () Dim MyNum As String End Sub 

Nå kan vi gå foran med eksemplene våre.

Desimalpoeng - eksempel 1

Anta at vi jobber med nummeret 56456, og du vil se to tall etter desimalet.

Trinn 1: I koden kan du legge til den innebygde VBA-funksjonen som nedenfor.

Mynum = Formatnummer (

Trinn 2: Som du vet er det første trinnet i funksjonen uttrykket som ikke er annet enn tallet du vil formatere. 56456 i vår sak.

Mynum = Formatnummer (56456,

Trinn 3: Det neste trinnet er Numdigitafterdecimal som ikke er annet enn antallet sifre du vil se etter desimaltallet som er 2 i vårt tilfelle.

Kode:

 Sub Format_Number_Example1 () Dim MyNum As String MyNum = FormatNumber (56456, 2) MsgBox MyNum End Sub 

Trinn 4 : Neste trinn er å vise nummeret i en meldingsboks. VBA har en innebygd funksjon for å vise verdien i en meldingsboks som er MSGBOX.

Så du trenger bare å sette inn koden nedenfor etter å ha satt inn funksjonen til Format nummer for MyNum.

Kode:

 Sub Format_Number_Example1 () Dim MyNum As String MyNum = FormatNumber (56456, 2) MsgBox MyNum End Sub 

Som du kan se den siste linjen i koden er End Sub, som betyr VBA-kode for makroen slutter etter det.

Trinn 6: Når kodingen for formatnummeret slutter, kan du kjøre makroen, og du kan se resultatet nedenfor etter å ha kjørt makroen.

Tusen skilleark - eksempel # 2

Anta at med det samme eksemplet, må vi vise samme nummer 56456 med tusen separatorer. I så fall må vi gi det siste argumentet som "vbTrue" som vist på skjermbildet nedenfor.

Kode:

Sub Format_Number_Example2 ()

Dim MyNum Som streng

MyNum = FormatNumber (56456, 2,,, vbTrue)

MsgBox MyNum

Slutt sub

Etter å ha kjørt makroen, vil du kunne se resultatet nedenfor.

Hvis du velger “vbFalse” som det siste argumentet, vil tallet ikke vises som tusen separator.

Vis negativt nummer i brakett - eksempel # 3

Anta at samme nummer 56456 i eksemplet over er negativt, og du må vise de negative tallene i en parentes, så det fjerde argumentet i funksjonen skal være "vbTrue" som vist på skjermbildet nedenfor.

Kode:

 Sub Format_Number_Example3 () Dim MyNum As String MyNum = FormatNumber (-56456, 2,, vbTrue, vbTrue) MsgBox MyNum End Sub 

Som du kan se det fjerde og femte argumentet i koden er "vbTrue", som betyr at formateringen for negativt tall (fjerde argument) og formatering for tusen skillere (femte argument) begge er sant. Så du vil se det negative tallet i en parentes og med tusen skillere som vist på skjermbildet nedenfor.

Formatering for nummer mellom -1 og 1 - Eksempel 4

Anta at tallet er 0, 567 som er mellom -1 og 1, så har du to alternativer for å formatere tallet. Det første alternativet er å vise null før desimaltegnet eller ikke å vise null før desimaltallet.

Hvis du velger alternativet for å vise null før desimaltegnet, bør du oppgi det tredje argumentet i funksjonen som "vbTrue" som vist på skjermbildet nedenfor.

Kode:

 Sub Format_Number_Example4 () Dim MyNum As String MyNum = FormatNumber (0.567, 2, vbTrue, vbTrue, vbTrue) MsgBox MyNum End Sub 

Du vil kunne se resultatet nedenfor etter å ha kjørt makrokoden.

Som du kan se, viser resultatet bare to sifre etter desimaltegnet, fordi vi bare har gitt 2 som det andre argumentet i funksjonen.

Hvis du velger det tredje argumentet som "vbFalse" som vist på skjermbildet nedenfor.

Kode:

 Sub Format_Number_Example5 () Dim MyNum As String MyNum = FormatNumber (0.567, 2, vbFalse, vbTrue, vbTrue) MsgBox MyNum End Sub 

Da vil du ikke se null før desimaltegnet som vist på skjermbildet nedenfor.

Ting å huske

  • VBA FormatNumber Funksjon har 5 argumenter, så sørg for at du oppgir de riktige argumentene i rekkefølgen av funksjonen. Vi må følge rekkefølgen på funksjonen, det er ingen annen utvei.
  • Hvis du beholder et av argumentene som tomt, vil det automatisk vurdere VBA-standardalternativet.
  • Vær forsiktig med vbTrue og vbFalse argument for de tre siste argumentene for tallformatering.
  • For det første argumentet som er uttrykket, kan du også oppgi cellehenvisning i excel-arket i stedet for et hvilket som helst tall.

Anbefalte artikler

Dette er en guide til VBA-formatnummer. Her diskuterer vi hvordan du formaterer tall i Excel ved hjelp av VBA-kode sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom våre andre foreslåtte artikler-

  1. Hvordan bruker jeg VBA TRIM-funksjonen?
  2. VBA Arrays | Fullstendig opplæring
  3. Hvordan bruker jeg VBA Select Case?
  4. Excel VBA Finn-funksjon

Kategori: