Comments on: Two best ways to convert numbers to words in Excel

In this article I will show you two quick and free ways to convert currency numbers into English words in Excel 2019, 2016, 2013 and other versions. Continue reading

Comments page 8. Total comments: 530

  1. Hi sir!
    Good pm
    Ask ko po sana pano po iconvert numbers to peso in excel 2016 windows 10.using this format po: ex.: 120.50
    One Hundred Twenty Pesos and 50/100 Only
    Thanks Sir! GOD BLESS

  2. Function SpellNumber(ByVal MyNumber) - -During running the formula , error occurs in MyNumber

  3. Convert
    1.Four thousand three hundred and thirty to number figures
    2.Three thousand and eighteen to number figures
    3.Eight thousand and forty three to number figures
    4.Nine thousand and seventy seven to number figures.
    Convert
    5. 9,44 to English words
    6. 2,019 to English words
    7. 7,003 to English words
    Thanks.

  4. HOW TO MAKE IT APPLY ON EVERY EXCEL SHEET

  5. can you remove the . before the cents and add a zero? eg. .1/100 Only to 10/100 Only

  6. do you have the VBA code to convert numbers in French words

  7. Hi can anyone share me the excel add-in file of the Spell Number in USD? i cannot fine the excel Add-in File.

  8. currently we are using spellnumber like this.
    370,932.04 = Three Hundred Seventy Thousand Nine Hundred Thirty Two & 4/100 Pesos Only
    But due to bank requirement it should be like this.
    Three Hundred Seventy Thousand Nine Hundred Thirty Two & 04/100 Pesos Only
    Please help me how to do it. Thanks in advance

  9. Thank you for this. But how to do it like this: 190708 turn to (One-Nine-Zero-Seven-Zero-Eight)

    Is there a way to do it like that? Thank you very much!

  10. I would like this one for Bahraini Dinar..as the whole process and change the currency there will be always an error. please help me on this...

  11. I dont want to show in word in Paisa.
    Now showing
    4567.23= Taka Four Thousand Five hundred Sixty Seven twenty three paise only.
    But I want to show Like this:
    4567.23= Taka Four Thousand Five hundred Sixty Seven only.
    Please help me:
    Function SpellNumber(amt As Variant) As Variant
    Dim FIGURE As Variant
    Dim LENFIG As Integer
    Dim i As Integer
    Dim WORDs(19) As String
    Dim tens(9) As String
    WORDs(1) = "One"
    WORDs(2) = "Two"
    WORDs(3) = "Three"
    WORDs(4) = "Four"
    WORDs(5) = "Five"
    WORDs(6) = "Six"
    WORDs(7) = "Seven"
    WORDs(8) = "Eight"
    WORDs(9) = "Nine"
    WORDs(10) = "Ten"
    WORDs(11) = "Eleven "
    WORDs(12) = "Twelve "
    WORDs(13) = "Thirteen "
    WORDs(14) = "Fourteen "
    WORDs(15) = "Fifteen "
    WORDs(16) = "Sixteen "
    WORDs(17) = "Seventeen "
    WORDs(18) = "Eighteen "
    WORDs(19) = "Nineteen "
    tens(2) = "Twenty "
    tens(3) = "Thirty "
    tens(4) = "Fourty "
    tens(5) = "Fifty "
    tens(6) = "Sixty "
    tens(7) = "Seventy "
    tens(8) = "Eighty "
    tens(9) = "Ninety "
    FIGURE = amt
    FIGURE = Format(FIGURE, "FIXED")
    FIGLEN = Len(FIGURE)
    If FIGLEN 1 Then
    SpellNumber = "Taka "
    ElseIf Val(Left(FIGURE, 9)) = 1 Then
    SpellNumber = "Taka "
    End If
    For i = 1 To 3
    If Val(Left(FIGURE, 2)) 0 Then
    SpellNumber = SpellNumber & WORDs(Val(Left(FIGURE, 2)))
    ElseIf Val(Left(FIGURE, 2)) > 19 Then
    SpellNumber = SpellNumber & tens(Val(Left(FIGURE, 1)))
    SpellNumber = SpellNumber & WORDs(Val(Right(Left(FIGURE, 2), 1)))
    End If
    If i = 1 And Val(Left(FIGURE, 2)) > 0 Then
    SpellNumber = SpellNumber & " Crore "
    ElseIf i = 2 And Val(Left(FIGURE, 2)) > 0 Then
    SpellNumber = SpellNumber & " Lakh "
    ElseIf i = 3 And Val(Left(FIGURE, 2)) > 0 Then
    SpellNumber = SpellNumber & " Thousand "
    End If
    FIGURE = Mid(FIGURE, 3)
    Next i
    If Val(Left(FIGURE, 1)) > 0 Then
    SpellNumber = SpellNumber & WORDs(Val(Left(FIGURE, 1))) + " Hundred "
    End If
    FIGURE = Mid(FIGURE, 2)
    If Val(Left(FIGURE, 2)) 0 Then
    SpellNumber = SpellNumber & WORDs(Val(Left(FIGURE, 2)))
    ElseIf Val(Left(FIGURE, 2)) > 19 Then
    SpellNumber = SpellNumber & tens(Val(Left(FIGURE, 1)))
    SpellNumber = SpellNumber & WORDs(Val(Right(Left(FIGURE, 2), 1)))
    End If
    FIGURE = Mid(FIGURE, 4)
    If Val(FIGURE) > 0 Then
    SpellNumber = SpellNumber & " Paise "
    If Val(Left(FIGURE, 2)) 0 Then
    SpellNumber = SpellNumber & WORDs(Val(Left(FIGURE, 2)))
    ElseIf Val(Left(FIGURE, 2)) > 19 Then
    SpellNumber = SpellNumber & tens(Val(Left(FIGURE, 1)))
    SpellNumber = SpellNumber & WORDs(Val(Right(Left(FIGURE, 2), 1)))
    End If
    End If
    FIGURE = amt
    FIGURE = Format(FIGURE, "FIXED")
    If Val(FIGURE) > 0 Then
    SpellNumber = SpellNumber & " Only. "
    End If
    End Function

  12. 28,205.8

  13. How to write formula for
    45556.545
    Forty Five Thousand Five Hundred Fifty six JOD and five hundred forty five fils
    Please help me.

  14. can i change the currency like its dollars so can i change to dirhams and the fonts too

    1. For Dirhams and Fills; but not tested if every amount will work out fine.

      Option Explicit

      'Main Function

      Function SpellNumber(ByVal MyNumber)

      Dim Dirhams, Fills, Temp

      Dim DecimalPlace, Count

      ReDim Place(9) As String

      Place(2) = " Thousand "

      Place(3) = " Million "

      Place(4) = " Billion "

      Place(5) = " Trillion "

      ' String representation of amount.

      MyNumber = Trim(Str(MyNumber))

      ' Position of decimal place 0 if none.

      DecimalPlace = InStr(MyNumber, ".")

      ' Convert Fills and set MyNumber to dirham amount.

      If DecimalPlace > 0 Then

      Fills = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
      "00", 2))

      MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))

      End If

      Count = 1

      Do While MyNumber ""

      Temp = GetHundreds(Right(MyNumber, 3))

      If Temp "" Then Dirhams = Temp & Place(Count) & Dirhams

      If Len(MyNumber) > 3 Then

      MyNumber = Left(MyNumber, Len(MyNumber) - 3)

      Else

      MyNumber = ""

      End If

      Count = Count + 1

      Loop

      Select Case Dirhams

      Case ""

      Dirhams = ""

      Case "One"

      Dirhams = "One Dirham"

      Case Else

      Dirhams = Dirhams & " Dirhams"

      End Select

      Select Case Fills

      Case ""

      Fills = ""

      Case "One"

      Fills = " and One Fills"

      Case Else

      Fills = " and " & Fills & " Fills"

      End Select

      SpellNumber = Dirhams & Fills

      End Function

      ' Converts a number from 100-999 into text

      Function GetHundreds(ByVal MyNumber)

      Dim Result As String

      If Val(MyNumber) = 0 Then Exit Function

      MyNumber = Right("000" & MyNumber, 3)

      ' Convert the hundreds place.

      If Mid(MyNumber, 1, 1) "0" Then

      Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "

      End If

      ' Convert the tens and ones place.

      If Mid(MyNumber, 2, 1) "0" Then

      Result = Result & GetTens(Mid(MyNumber, 2))

      Else

      Result = Result & GetDigit(Mid(MyNumber, 3))

      End If

      GetHundreds = Result

      End Function

      ' Converts a number from 10 to 99 into text.

      Function GetTens(TensText)
      Dim Result As String
      Result = "" ' Null out the temporary function value.
      If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
      Select Case Val(TensText)
      Case 10: Result = "Ten"
      Case 11: Result = "Eleven"
      Case 12: Result = "Twelve"
      Case 13: Result = "Thirteen"
      Case 14: Result = "Fourteen"
      Case 15: Result = "Fifteen"
      Case 16: Result = "Sixteen"
      Case 17: Result = "Seventeen"
      Case 18: Result = "Eighteen"
      Case 19: Result = "Nineteen"
      Case Else
      End Select
      Else ' If value between 20-99...
      Select Case Val(Left(TensText, 1))
      Case 2: Result = "Twenty "
      Case 3: Result = "Thirty "
      Case 4: Result = "Forty "
      Case 5: Result = "Fifty "
      Case 6: Result = "Sixty "
      Case 7: Result = "Seventy "
      Case 8: Result = "Eighty "
      Case 9: Result = "Ninety "
      Case Else
      End Select
      Result = Result & GetDigit _
      (Right(TensText, 1)) ' Retrieve ones place.
      End If
      GetTens = Result
      End Function

      ' Converts a number from 1 to 9 into text.

      Function GetDigit(Digit)

      Select Case Val(Digit)

      Case 1: GetDigit = "One"

      Case 2: GetDigit = "Two"

      Case 3: GetDigit = "Three"

      Case 4: GetDigit = "Four"

      Case 5: GetDigit = "Five"

      Case 6: GetDigit = "Six"

      Case 7: GetDigit = "Seven"

      Case 8: GetDigit = "Eight"

      Case 9: GetDigit = "Nine"

      Case Else: GetDigit = ""

      End Select

      End Function

  15. This code is showing error for 100 crores it is showing 10 crores only

  16. we require only mention in words, from any number for example
    11,223,569 Eleven Million Two Hundred Twenty Three Thousand Five Hundred Sixty Nine Only
    145,201 One Hundred Forty Five Thousand Two Hundred One Only
    5,300 Five Thousand Three Hundred
    Very Thanks
    Akram Iqbal

  17. can i get code in uae dhirham and fils
    in exel cell my total amount that amound i want to convert

  18. Thanks. This works. But now the question is how to permanenelty add this formula in excel 2016 because I need this in many sheets and everytime i'm unable to add formula in excel.

  19. Formula updated from Dollar to Rupees
    Option Explicit
    'Main Function
    Function SpellNumber(ByVal MyNumber)
    Dim Rupees, Paisa, Temp
    Dim DecimalPlace, Count
    ReDim Place(9) As String
    Place(2) = " Thousand "
    Place(3) = " Million "
    Place(4) = " Billion "
    Place(5) = " Trillion "

    MyNumber = Trim(Str(MyNumber))
    DecimalPlace = InStr(MyNumber, ".")
    If DecimalPlace > 0 Then
    Paisa = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
    "00", 2))
    MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    End If
    Count = 1
    Do While MyNumber ""
    Temp = GetHundreds(Right(MyNumber, 3))
    If Temp "" Then Rupees = Temp & Place(Count) & Rupees
    If Len(MyNumber) > 3 Then
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    Else
    MyNumber = ""
    End If
    Count = Count + 1
    Loop
    Select Case Rupees
    Case ""
    Rupees = "No Rupees"
    Case "One"
    Rupees = "One Dollar"
    Case Else
    Rupees = Rupees & " Rupees"
    End Select
    Select Case Paisa
    Case ""
    Paisa = " and No Paisa"
    Case "One"
    Paisa = " and One Cent"
    Case Else
    Paisa = " and " & Paisa & " Paisa"
    End Select
    SpellNumber = Rupees & Paisa
    End Function

    Function GetHundreds(ByVal MyNumber)
    Dim Result As String
    If Val(MyNumber) = 0 Then Exit Function
    MyNumber = Right("000" & MyNumber, 3)
    ' Convert the hundreds place.
    If Mid(MyNumber, 1, 1) "0" Then
    Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
    End If
    ' Convert the tens and ones place.
    If Mid(MyNumber, 2, 1) "0" Then
    Result = Result & GetTens(Mid(MyNumber, 2))
    Else
    Result = Result & GetDigit(Mid(MyNumber, 3))
    End If
    GetHundreds = Result
    End Function

    Function GetTens(TensText)
    Dim Result As String
    Result = "" ' Null out the temporary function value.
    If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
    Select Case Val(TensText)
    Case 10: Result = "Ten"
    Case 11: Result = "Eleven"
    Case 12: Result = "Twelve"
    Case 13: Result = "Thirteen"
    Case 14: Result = "Fourteen"
    Case 15: Result = "Fifteen"
    Case 16: Result = "Sixteen"
    Case 17: Result = "Seventeen"
    Case 18: Result = "Eighteen"
    Case 19: Result = "Nineteen"
    Case Else
    End Select
    Else ' If value between 20-99...
    Select Case Val(Left(TensText, 1))
    Case 2: Result = "Twenty "
    Case 3: Result = "Thirty "
    Case 4: Result = "Forty "
    Case 5: Result = "Fifty "
    Case 6: Result = "Sixty "
    Case 7: Result = "Seventy "
    Case 8: Result = "Eighty "
    Case 9: Result = "Ninety "
    Case Else
    End Select
    Result = Result & GetDigit _
    (Right(TensText, 1)) ' Retrieve ones place.
    End If
    GetTens = Result
    End Function

    Function GetDigit(Digit)
    Select Case Val(Digit)
    Case 1: GetDigit = "One"
    Case 2: GetDigit = "Two"
    Case 3: GetDigit = "Three"
    Case 4: GetDigit = "Four"
    Case 5: GetDigit = "Five"
    Case 6: GetDigit = "Six"
    Case 7: GetDigit = "Seven"
    Case 8: GetDigit = "Eight"
    Case 9: GetDigit = "Nine"
    Case Else: GetDigit = ""
    End Select
    End Function
    -------------------------------
    Regards

    1. Hey, thank you for the code. However, I am getting an error stating syntax error with Function SpellNumber(ByVal MyNumber) highlighted in yellow & Do while MyNumber"" highlighted too..
      Please help!

  20. It is very helpful for me. but some changes required.
    if There is Multiple Decimals then how do we Convert calculation shows Wrong.
    Example : 149.149 = Spellnumber(One Hundred Forty Nine Dollars and Fourteen Cents.
    But it has to be fifteen Cents how to do it pls help.

  21. dear sir,
    what do if i want to spell a number in rupees ?
    regard,
    saurav narvekar

  22. Thanks a lot for sharing formula. Amazing...

  23. hi guys
    i cant use VBA in my company lap .
    please help me to convert number to text in INR format only by suing any formulas without using macros

  24. hai, i need to change the above coding to indian currency

  25. done. Thank you so much

  26. Please help me get the above coding for converting Rupees as value

  27. i got an error. "Ambiguous name detected: SpellNumber" ..how i gonna solve this?

    Thanks a lot

  28. Mate you are a genius - thanks a million

  29. Mate you are a genius - thanks a million

  30. Thanks a lot. i edited the currency bit from Dollars to GHCedis & Pesewas and it worked great! so grateful.

  31. Hi,

    I'd like to convert in this format
    P151.50 = One Hundred Fifty-One & 50/100 only

    Thanks,

    1. UPDATE
      I was able to solve this but works only on Windows 8, 8.1, & 10 Machines only
      here is the code
      Option Explicit

      '****************' Main Function *'****************
      Function SpellNumber(ByVal MyNumber)
      Dim Pesos, Cents, Temp
      Dim DecimalPlace, Count
      ReDim Place(9) As String
      Place(2) = " Thousand "
      Place(3) = " Million "
      Place(4) = " Billion "
      Place(5) = " Trillion " ' String representation of amount
      MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none
      DecimalPlace = InStr(MyNumber, ".")
      'Convert cents and set MyNumber to Peso amount
      If DecimalPlace > 0 Then
      Cents = Right(MyNumber, 2)
      MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
      End If
      Count = 1
      Do While MyNumber ""
      Temp = GetHundreds(Right(MyNumber, 3))
      If Temp "" Then Pesos = Temp & Place(Count) & Pesos
      If Len(MyNumber) > 3 Then
      MyNumber = Left(MyNumber, Len(MyNumber) - 3)
      Else
      MyNumber = ""
      End If
      Count = Count + 1
      Loop
      Select Case Pesos
      Case ""
      Pesos = "No Pesos"
      Case "One"
      Pesos = "One Peso"
      Case Else
      Pesos = Pesos & " Pesos"
      End Select
      Select Case Cents
      Case ""
      Cents = " Only"
      Case "1"
      Cents = " & .1/100 Cent Only"
      Case Else
      Cents = " & " & (Cents) & "/100 Only"
      End Select
      SpellNumber = Pesos & Cents
      End Function
      '*******************************************
      ' Converts a number from 100-999 into text *
      '*******************************************
      Function GetHundreds(ByVal MyNumber)
      Dim Result As String
      If Val(MyNumber) = 0 Then Exit Function
      MyNumber = Right("000" & MyNumber, 3) 'Convert the hundreds place
      If Mid(MyNumber, 1, 1) "0" Then
      Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
      End If
      'Convert the tens and ones place
      If Mid(MyNumber, 2, 1) "0" Then
      Result = Result & GetTens(Mid(MyNumber, 2))
      Else
      Result = Result & GetDigit(Mid(MyNumber, 3))
      End If
      GetHundreds = Result
      End Function
      '*********************************************
      ' Converts a number from 10 to 99 into text. *
      '*********************************************
      Function GetTens(TensText)
      Dim Result As String
      Result = "" 'null out the temporary function value
      If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19
      Select Case Val(TensText)
      Case 10: Result = "Ten"
      Case 11: Result = "Eleven"
      Case 12: Result = "Twelve"
      Case 13: Result = "Thirteen"
      Case 14: Result = "Fourteen"
      Case 15: Result = "Fifteen"
      Case 16: Result = "Sixteen"
      Case 17: Result = "Seventeen"
      Case 18: Result = "Eighteen"
      Case 19: Result = "Nineteen"
      Case Else
      End Select
      Else ' If value between 20-99
      Select Case Val(Left(TensText, 1))
      Case 2: Result = "Twenty "
      Case 3: Result = "Thirty "
      Case 4: Result = "Forty "
      Case 5: Result = "Fifty "
      Case 6: Result = "Sixty "
      Case 7: Result = "Seventy "
      Case 8: Result = "Eighty "
      Case 9: Result = "Ninety "
      Case Else
      End Select
      Result = Result & GetDigit _
      (Right(TensText, 1)) 'Retrieve ones place
      End If
      GetTens = Result
      End Function
      '*******************************************
      ' Converts a number from 1 to 9 into text. *
      '*******************************************
      Function GetDigit(Digit)
      Select Case Val(Digit)
      Case 1: GetDigit = "One"
      Case 2: GetDigit = "Two"
      Case 3: GetDigit = "Three"
      Case 4: GetDigit = "Four"
      Case 5: GetDigit = "Five"
      Case 6: GetDigit = "Six"
      Case 7: GetDigit = "Seven"
      Case 8: GetDigit = "Eight"
      Case 9: GetDigit = "Nine"
      Case Else: GetDigit = ""
      End Select
      End Function

      Sub test()
      Dim number As Double
      number = Range("A1").Value
      Range("A2").Value = SpellNumber(number)
      End Sub

      1. Tried solving this.
        Amount : 46,728.32
        But always appears as "Forty Six Thousand Seven Hundred Twenty Eight Pesos & Thirty Two/100 Only" instead of Forty Six Thousand Seven Hundred Twenty Eight Pesos & 32/100 Only

      2. Thank you :)

        1. i tried to sample 123.50
          result: One Hundred Twenty Three Pesos & .5/100 Only
          instead of: One Hundred Twenty Three Pesos & 50/100 Only
          Please help

          1. dear sir,
            what do if i want to spell a number in BTD ?
            regard,
            Dina Sarker

  32. Hello, the code is great! I'm using to print checks, so I need to add the word "only" at the end of the spelled number (ie twenty one dollars only). How can I achieve this?

  33. Hi,I need the number without the code of dollers and cents,thanks

  34. Hi,
    I need to convert a number with three digits after the decimal point, for example:
    122,145 --> one hundred twenty two dollars one hundred forty five cents.
    Thank you in advance.

  35. How To convert 48000 RS in English word in M S Excle

  36. Why do I keep on getting #Name? Send Help please

    1. me too

  37. thanks brother

  38. Hello. I am wanted to enter the numbers 1 - 4 in each individual cell in an entire column. Once i insert the number and push ENTER, i want a text to replace the number based on which text i attach to that number. For example. The text for 1 is "Shut", i insert one into the cell and hit enter and it changes the value 1 to "shut

  39. tried it and it worked:
    $866.96 Eight Hundred Sixty Six Dollars and Ninety Five Cents
    $866.955 Eight Hundred Sixty Six Dollars and Ninety Five Cents
    but it does not round up.
    it is supposed to be :
    Eight Hundred Sixty Six Dollars and Ninety Six Cents

    Please advise.

    1. please disregard the previous comment. the code is working fine.
      i just need to use the roundup function in excel.

      1. You are a genius, thank you, I had the exact same problem.

  40. Thank you for this wonderful Module. Take care.

  41. Thanks for authentic codes. It works where codes from Microsoft gave an error message.
    Best wushes!
    Regards,

  42. It working very well. Thank's

  43. Hi, Can please I have the code without dollars and cents? thanks

    1. Hey Mike!
      do you get the code without dollars and cents
      i also need this code
      if you get this code please send me
      i have really need this code

  44. when i copy and paste this, it gives me errors, what am i doing wrong?

  45. SIMPLE, LOL, YOUR MACROS WORKED FIRST TIME, NO PROBLEMS, ONLY REQUEST IS FOR A CHANGE TO 00/00...01/00...03/00 AND SO ON INSTEAD OF CENTS, GOT YOURS TO WORK 00/00 AND 01/00 TO WORK, BUT AFTER THAT, ALL IS TEXT /00. SO I DELETED CENTS ALL TOGETHER TILL I GET THE CORRECT MACROS FOR THE OO/00 TO 99/00, PLEASE AND THANKS

    1. Here is my solution in a shorter macro:
      Function NumberToWords(ByVal StartNumber As Currency) As String

      Dim Buffer As String
      Dim Dollars
      Dim Cents
      Dim NumberofGroups
      Dim NumberSegment
      Dim Hundreds
      Dim Tens
      Dim Ones
      GroupNames = Array("", "Thousand ", "Million ", "Billion ", "Trillion ")
      OnesNames = Array("", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ", "Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
      TensNames = Array("", "", "Twenty ", "Thirty ", "Fourty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")

      Dollars = Fix(StartNumber)
      Cents = Fix(100 * (StartNumber - Fix(StartNumber)) + 0.5)
      NumberofGroups = Fix((Log(Dollars) / Log(10)) / 3)

      Dim i
      For i = NumberofGroups To 0 Step -1
      NumberSegment = Fix(Dollars / 10^ ^ (i * 3))
      Hundreds = Fix(NumberSegment / 100)
      Tens = Fix((NumberSegment - (Hundreds * 100)) / 10)
      Ones = NumberSegment - (Hundreds * 100) - (Tens * 10)

      If Hundreds > 0 Then
      Buffer = Buffer + OnesNames(Hundreds) + "Hundred "
      End If
      If Tens > 0 Then
      If Tens > 1 Then
      Buffer = Buffer + TensNames(Tens) + OnesNames(Ones)
      Else
      Buffer = Buffer + OnesNames(Tens * 10 + Ones)
      End If
      Else
      Buffer = Buffer + OnesNames(Ones)
      End If

      If NumberSegment > 0 Then
      Buffer = Buffer + GroupNames(i)
      End If

      Dollars = Dollars - (NumberSegment * 10^ ^ (i * 3))
      Next i

      Buffer = Buffer + "and "
      If Cents < 10 Then
      Buffer = Buffer + "0"
      End If
      Buffer = Buffer + Trim(Str(Cents)) + "/100 *****************************************"

      NumberToWords = Buffer

      End Function

    2. I need the answer for this

  46. Thanks you very much....

  47. Hi,
    Could you tell me the code where I can mention "and" before the last figures e.g. Rs 1,987,290 (Rupees one million nine Hundred eighty seven thousand two hundred and ninety only)

    1. pls use below function
      Option Explicit
      'Main Function
      Function SpellNumber(ByVal MyNumber)
      Dim Rupees, only, Temp
      Dim DecimalPlace, Count
      ReDim Place(9) As String
      Place(2) = " Thousand, "
      Place(3) = " Million, "
      Place(4) = " Billion, "
      Place(5) = " Trillion, "

      MyNumber = Trim(Str(MyNumber))
      DecimalPlace = InStr(MyNumber, ".")
      If DecimalPlace > 0 Then
      only = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
      "00", 2))
      MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
      End If
      Count = 1
      Do While MyNumber ""
      Temp = GetHundreds(Right(MyNumber, 3))
      If Temp "" Then Rupees = Temp & Place(Count) & Rupees
      If Len(MyNumber) > 3 Then
      MyNumber = Left(MyNumber, Len(MyNumber) - 3)
      Else
      MyNumber = ""
      End If
      Count = Count + 1
      Loop
      Select Case Rupees
      Case ""
      Rupees = "No Rupees"
      Case "One"
      Rupees = "One Dollar"
      Case Else
      Rupees = Rupees & " Only"
      End Select
      SpellNumber = "Rupees " & Rupees
      End Function

      Function GetHundreds(ByVal MyNumber)
      Dim Result As String
      If Val(MyNumber) = 0 Then Exit Function
      MyNumber = Right("000" & MyNumber, 3)
      ' Convert the hundreds place.
      If Mid(MyNumber, 1, 1) "0" Then
      Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
      End If
      ' Convert the tens and ones place.
      If Mid(MyNumber, 2, 1) "0" Then
      Result = Result & GetTens(Mid(MyNumber, 2))
      Else
      Result = Result & GetDigit(Mid(MyNumber, 3))
      End If
      GetHundreds = Result
      End Function

      Function GetTens(TensText)
      Dim Result As String
      Result = "" ' Null out the temporary function value.
      If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19…
      Select Case Val(TensText)
      Case 10: Result = "Ten"
      Case 11: Result = "Eleven"
      Case 12: Result = "Twelve"
      Case 13: Result = "Thirteen"
      Case 14: Result = "Fourteen"
      Case 15: Result = "Fifteen"
      Case 16: Result = "Sixteen"
      Case 17: Result = "Seventeen"
      Case 18: Result = "Eighteen"
      Case 19: Result = "Nineteen"
      Case Else
      End Select
      Else ' If value between 20-99…
      Select Case Val(Left(TensText, 1))
      Case 2: Result = "Twenty "
      Case 3: Result = "Thirty "
      Case 4: Result = "Forty "
      Case 5: Result = "Fifty "
      Case 6: Result = "Sixty "
      Case 7: Result = "Seventy "
      Case 8: Result = "Eighty "
      Case 9: Result = "Ninety "
      Case Else
      End Select
      Result = Result & GetDigit _
      (Right(TensText, 1)) ' Retrieve ones place.
      End If
      GetTens = Result
      End Function

      Function GetDigit(Digit)
      Select Case Val(Digit)
      Case 1: GetDigit = "One"
      Case 2: GetDigit = "Two"
      Case 3: GetDigit = "Three"
      Case 4: GetDigit = "Four"
      Case 5: GetDigit = "Five"
      Case 6: GetDigit = "Six"
      Case 7: GetDigit = "Seven"
      Case 8: GetDigit = "Eight"
      Case 9: GetDigit = "Nine"
      Case Else: GetDigit = ""
      End Select
      End Function

  48. Hi, can i have the code without dollars and cents, E.g.
    Four Million Six Hundred Three Thousand Four Hundred Twenty Two

  49. Thank you Bro....

  50. i just want the wording not any currency. what should i do?

Post a comment



Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)