Excel VBA-formatnummer

VBA leveres med en indbygget funktion til formatering af numre. Navnet på den indbyggede funktion er “Format Number”. Denne funktion formaterer det specifikke nummer i et format, som kræves af brugeren.
Før vi går videre, lad os først forstå, hvad der er nummerformatering. Talformatering betyder dybest set, at det specifikke nummer skal vises på en bestemt måde. For eksempel, hvis du vil se et specifikt tal i form af to decimaler (150, 55), eller du vil se det samme tal i form af intet decimalpunkt (150). Dette er bare eksempler. Grundlæggende kan vi kategorisere disse nummerformatering i fire kategorier.

  • Decimalpoint
  • Negative tal i parentes
  • Ledende cifre
  • Gruppecifre

Vi vil lære alle formateringer i VBA ved hjælp af eksempler. Men lad os først kigge på syntaks for VBA-funktion til formatnummer.

Så da du kan se syntaks for VBA-funktion til formatnummer i ovenstående skærmbillede, så lad os bryde denne funktion og forstå alle dele af funktionen.

  1. Udtryk: Som du kan se, er den første del af funktionen et udtryk, der ikke er andet end det nummer, vi vil formatere.
  2. Numerisk ciffer efter decimal: Den anden del af funktionen beder om antallet af cifre i det tal, du vil se efter decimalpunktet.
  3. Ledende ciffer: Dette er nyttigt, når tallet er mellem -1 og 1, hvilket betyder, når tallet er mere end -1 og mindre end 1. For eksempel 0, 25.

Så hvis du vil se værdien nul før decimal, skal du indsætte argument i funktionen som SAND eller -1. Resultatet bliver 0, 55.

Men hvis du indsætter værdien i argumentet som FALSE eller 0, vil resultatet .55.

  1. Brug overordnede til negative numre : Denne del bruges til negative tal. Hvis du vil se de negative tal i en parentes, skal du give et argument som SAND eller -1, og resultatet bliver (156). Men når du angiver argumentet som FALSE eller 0, bliver resultatet -156.
  2. Gruppecifre : Dette er den sidste del af den funktion, der bruges til de tusind separatorer. Så hvis du vil se numrene med en tusind separator, skal du angive argumentet som SAND eller -1, og resultatet vil være 52.000. Men hvis du angiver det samme argument som FALSE eller 0, vil resultatet ligne 52000.

Sådan formateres nummer ved hjælp af VBA-kode?

Når du forstår de forskellige former for nummerformatering og den indbyggede VBA-funktion i nummerformat, kan vi gå videre og se, hvordan vi kan bruge dette ved hjælp af eksempler.

Du kan downloade denne VBA Format Number Excel Template her - VBA Format Number Excel Template

Før du går til eksemplerne, skal du følge nedenstående grundlæggende trin, hvis du er ny med VBA-makro. Du kan indsætte nedenstående koder i VBA-modulet.

Trin 1: Opret et makronavn, som er den første linje i koden, som du kan se på skærmbilledet.

Trin 2: Angiv en af ​​variablerne som streng, fordi resultatet givet af VBA-formatnummerfunktionen er streng.

Kode:

 Sub Format_Number_Example1 () Dim MyNum As String End Sub 

Nu kan vi gå videre med vores eksempler.

Decimalpoint - eksempel # 1

Lad os antage, at vi arbejder med nummeret 56456, og du vil se to numre efter decimalpunktet.

Trin 1: I koden kan du tilføje den indbyggede VBA-funktion som nedenfor.

Mynum = Formatnummer (

Trin 2: Som du ved, er det første trin i funktionen det udtryk, der ikke er andet end det nummer, du vil formatere. 56456 i vores sag.

Mynum = Formatnummer (56456,

Trin 3: Det næste trin er Numdigitafterdecimal, som ikke er andet end antallet af cifre, du vil se efter decimalet, som er 2 i vores tilfælde.

Kode:

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

Trin 4 : Det næste trin er at vise nummeret i en meddelelsesboks. VBA har en indbygget funktion til at vise værdien i en meddelelsesboks, der er MSGBOX.

Så du behøver blot at indsætte nedenstående kode efter indsættelse af funktionen Formater nummer til MyNum.

Kode:

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

Som du kan se den sidste linje i koden er End Sub, hvilket betyder VBA-kode for makroen slutter derefter.

Trin 6: Når kodningen for formatnummeret slutter, kan du køre makroen, og du kan se nedenstående resultat efter at have kørt makroen.

Tusind separator - eksempel # 2

Antag nu, at vi med det samme eksempel skal vise det samme nummer 56456 med tusind separatorer. I dette tilfælde er vi nødt til at give det sidste argument som "vbTrue" som vist på nedenstående skærmbillede.

Kode:

Subformatnummer_eksempel2 ()

Dim MyNum som streng

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

MsgBox MyNum

Afslut under

Når du har kørt makroen, kan du se resultatet nedenfor.

Hvis du vælger “vbFalse” som det sidste argument, vises nummeret ikke som tusind separator.

Vis negativt nummer i beslag - eksempel # 3

Antag, at det samme nummer 56456 i ovenstående eksempel er negativt, og du er nødt til at vise de negative numre i en parentes, så skal det fjerde argument i funktionen være "vbTrue" som vist i nedenstående skærmbillede.

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 det femte argument i koden er “vbTrue”, hvilket betyder, at formateringen til negativt tal (fjerde argument) & formatering for tusind separatorer (femte argument) begge er sandt. Så du vil se det negative tal inden i en beslag og med tusind separatorer som vist på nedenstående skærmbillede.

Formatering for nummer mellem -1 og 1 - eksempel # 4

Antag, at antallet er 0, 567, som er mellem -1 og 1, så har du to muligheder for at formatere tallet. Den første mulighed er at vise nul før decimalpunktet eller ikke at vise nul før decimalpunktet.

Hvis du vælger indstillingen til at vise nul før decimalpunktet, skal du angive det tredje argument i funktionen som "vbTrue" som vist i nedenstående skærmbillede.

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 nedenstående resultat efter at have kørt makrokoden.

Som du kan se, viser resultatet kun to cifre efter decimalpunktet, fordi vi kun har givet 2 som det andet argument i funktionen.

Hvis du vælger det tredje argument som “vbFalse” som vist på nedenstående skærmbillede.

Kode:

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

Derefter vil du ikke se nulet før decimalpunktet, som vist i nedenstående skærmbillede.

Ting at huske

  • VBA FormatNumber-funktion har 5 argumenter, så sørg for at give de rigtige argumenter i rækkefølge af funktionen. Vi må følge rækkefølgen af ​​funktionen, der er ingen anden udvej.
  • Hvis du beholder et af argumenterne som tomt, overvejer det automatisk VBA-standardindstillingen.
  • Vær forsigtig med vbTrue og vbFalse argument for de sidste tre argumenter for nummerformatering.
  • For det første argument, der er udtrykket, kan du også angive cellehenvisningen i excelarket i stedet for et hvilket som helst tal.

Anbefalede artikler

Dette er en guide til VBA-formatnummer. Her diskuterer vi, hvordan man formaterer numre i Excel ved hjælp af VBA-kode sammen med praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler-

  1. Hvordan bruges VBA TRIM-funktionen?
  2. VBA Arrays | Komplet selvstudie
  3. Hvordan bruges VBA Select Case?
  4. Excel VBA Find-funktion

Kategori: