Excel VBA-formatnummer

VBA har en inbyggd funktion för formatering av nummer. Namnet på den inbyggda funktionen är "Format Number". Denna funktion formaterar det specifika numret i ett format som krävs av användaren.
Låt oss först förstå vad som är nummerformatering innan vi går vidare. Nummerformatering innebär i princip att det specifika numret ska visas på ett visst sätt. Om du till exempel vill se ett specifikt nummer i termer av två decimaler (150, 55) eller om du vill se samma nummer när det gäller ingen decimalpunkt (150). Det här är bara exempel. I grund och botten kan vi kategorisera dessa nummerformatering i fyra kategorier.

  • Decimala poäng
  • Negativa siffror inom parentes
  • Ledande siffror
  • Gruppsiffror

Vi kommer att lära oss alla formateringar i VBA med hjälp av exempel. Men låt oss först titta på syntaxen för VBA-funktionen för formatnummer.

Så eftersom du kan se syntaxen för VBA-funktionen för formatnummer i ovanstående skärmdump, låt oss bryta den funktionen och förstå alla delar av funktionen.

  1. Uttryck: Som ni ser är den första delen av funktionen ett uttryck som inte är något annat än det nummer vi vill formatera.
  2. Numralsiffran efter decimalen: Den andra delen av funktionen ber om antalet siffror för det nummer du vill se efter decimalpunkten.
  3. Ledande siffror: Detta är användbart när siffran är mellan -1 och 1 vilket betyder att siffran är mer än -1 och mindre än 1. Till exempel 0, 25.

Så om du vill se värdet noll före decimalpunkten måste du infoga argument i funktionen som SANT eller -1. Resultatet blir 0, 55.

Men om du sätter in värdet i argumentet som FALSE eller 0 kommer resultatet att .55.

  1. Använd överordnade för negativa nummer : Den här delen används för negativa nummer. Om du vill se de negativa siffrorna i en parentes bör du ange ett argument som SANT eller -1 och resultatet blir (156). Men när du anger argumentet som FALSE eller 0 blir resultatet -156.
  2. Gruppsiffror : Detta är den sista delen av funktionen som används för de tusen separatorerna. Så om du vill se siffrorna med tusen separator bör du ange argumentet som SANT eller -1 och resultatet blir 52 000. Men om du anger samma argument som FALSE eller 0 kommer resultatet att vara 52000.

Hur formaterar du nummer med VBA-kod?

Nu när du förstår de olika formerna för nummerformatering och den inbyggda VBA-funktionen i nummerformat, kan vi gå vidare och se hur vi kan använda detta med hjälp av exempel.

Du kan ladda ner denna VBA Format Number Excel Mall här - VBA Format Number Excel Mall

Innan du går till exemplen, följ följande nedanstående steg om du är ny med VBA-makro. Du kan infoga koderna nedan i VBA-modulen.

Steg 1: Skapa ett makronamn som är den första raden i koden som du kan se på skärmdumpen.

Steg 2: Förklara en av variablerna som String eftersom resultatet som ges av VBA Format-nummerfunktionen är String.

Koda:

 Sub Format_Number_Example1 () Dim MyNum As String End Sub 

Nu kan vi gå vidare med våra exempel.

Decimalpoäng - Exempel 1

Anta att vi arbetar med numret 56456 och du vill se två siffror efter decimalpunkten.

Steg 1: I koden kan du lägga till den inbyggda VBA-funktionen enligt nedan.

Mynum = Formatnummer (

Steg 2: Som ni vet är det första steget i funktionen uttrycket som inte är annat än numret du vill formatera. 56456 i vårt fall.

Mynum = Formatnummer (56456,

Steg 3: Nästa steg är Numdigitafterdecimal som inte är annat än antalet siffror du vill se efter decimalpunkten som är 2 i vårt fall.

Koda:

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

Steg 4 : Nästa steg är att visa numret i en meddelanderuta. VBA har en inbyggd funktion för att visa värdet i en meddelanderuta som är MSGBOX.

Så du behöver bara infoga koden nedan efter att du har infogat funktionen Formatnummer för MyNum.

Koda:

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

Som du kan se den sista raden i koden är End Sub vilket betyder att VBA-kod för makro slutar efter det.

Steg 6: När kodningen för formatnumret slutar kan du köra makroen och du kan se nedanstående resultat efter att ha kört makroen.

Tusen separator - exempel # 2

Antag nu med samma exempel, vi måste visa samma nummer 56456 med tusen separatorer. I så fall måste vi ange det sista argumentet som "vbTrue" som visas i bildskärmen nedan.

Koda:

Sub Format_Number_Example2 ()

Dim MyNum As String

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

MsgBox MyNum

Avsluta under

När du har kört makro kan du se resultatet nedan.

Om du väljer “vbFalse” som det sista argumentet kommer numret inte att visas som tusen separator.

Visa negativt nummer i parentes - exempel # 3

Anta att samma nummer 56456 i exemplet ovan är negativt och du måste visa de negativa siffrorna i en parentes, då det fjärde argumentet i funktionen ska vara "vbTrue" som visas i skärmbilden nedan.

Koda:

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

Som du kan se det fjärde och femte argumentet i koden är "vbTrue" vilket innebär att formateringen för negativt nummer (fjärde argumentet) och formatering för tusen separatorer (femte argumentet) är båda sant. Så du kommer att se det negativa antalet inom en konsol och med tusentals separatorer som visas på skärmbilden nedan.

Formatera för nummer mellan -1 och 1 - Exempel 4

Anta att antalet är 0, 567 vilket är mellan -1 och 1, då har du två alternativ för att formatera numret. Det första alternativet är att visa noll före decimalpunkten eller inte att visa noll före decimalpunkten.

Om du väljer alternativet att visa noll före decimalpunkten bör du ange det tredje argumentet i funktionen som "vbTrue" som visas i skärmbilden nedan.

Koda:

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

Du kommer att kunna se nedanstående resultat efter att ha kört makrokoden.

Som ni kan se visar resultatet bara två siffror efter decimalpunkten eftersom vi endast har tillhandahållit 2 som det andra argumentet i funktionen.

Om du väljer det tredje argumentet som "vbFalse" som visas i skärmbilden nedan.

Koda:

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

Då kommer du inte att se nollet före decimalpunkten som visas i skärmbilden nedan.

Saker att komma ihåg

  • VBA FormatNumber-funktionen har fem argument, så se till att du anger rätt argument i funktionens ordning. Vi måste följa funktionens ordning, det finns ingen annan väg ut.
  • Om du behåller något av argumentet som tomt kommer det automatiskt att överväga VBA-standardalternativet.
  • Var försiktig med vbTrue och vbFalse argument för de tre senaste argumenten för nummerformatering.
  • För det första argumentet som är uttrycket kan du också ange cellreferensen i excel-arket istället för valfritt nummer.

Rekommenderade artiklar

Detta är en guide till VBA-formatnummer. Här diskuterar vi hur du formaterar siffror i Excel med hjälp av VBA-kod tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar-

  1. Hur använder jag VBA TRIM-funktionen?
  2. VBA Arrays | Komplett handledning
  3. Hur använder man VBA Select Case?
  4. Excel VBA Find-funktion

Kategori: