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 5. Total comments: 530

  1. i have done this several time time but today i faild, or maybe because of the excel type, is there anything can be work in all the types of excells?

    cheers,
    Ali

  2. Syntax Error

  3. Indian Rupees not work , Its variable error coming

  4. i need a code for pakistan rupees conversion having no decimal in it can any one help me to send the code

  5. how to set excel formulas number to word in Bahraini Dinars ?

    I would like to get it as for example (160.525) Bahraini Dinars
    = One Hundred Sixty BD and Five Hundred Twenty Five Fils Only

    Please help me

    Thank you

  6. How to set excel formulas number to word in Philippine Peso?

    1. 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 "

      MyNumber = Trim(Str(MyNumber))
      DecimalPlace = InStr(MyNumber, ".")
      If DecimalPlace > 0 Then
      Cents = 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 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 Pesos"
      Case Else
      Pesos = Pesos & " Pesos"
      End Select
      Select Case Cents
      Case ""
      Cents = " and No Cents"
      Case "One"
      Cents = " and One Cent"
      Case Else
      Cents = " and " & Cents & " Cents"
      End Select
      SpellNumber = Pesos & Cents
      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

  7. Hi,
    I want to get the word "Only" at the end of the sentence. as an example, One Million One Hundred Seventy One Thousand Nine Hundred Fifty One Rupees and Twenty Cents Only. Can we change the function?

  8. Number to word in Pakistani 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 Paisa"
    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

  9. I would like to get it as for example 5.50 (Five taka Fifty Paissa only) and i am cancel the work sheet excel file close then I am reopen the excel file they did not spell 5.50 (Five taka Fifty Paissa only).

    1. Hello!
      I’m sorry but your task is not entirely clear to me. Could you please describe it in more detail? What result do you want to get? Give an example of the source data and the expected result.
      Thank you!

  10. Done Thanks :)

  11. Sir Kindly give me the format for BHD (Bahraini Dinars )

    I would like to get it as for example 125.500-Bahraini Dinars One Hundred twenty five and Fils 500/1000 Only

  12. how to set excel formulas number to word in Bangladeshi Taka ?

  13. How to use crore,lac,thousand,hundred instead of brillion,million thousand

  14. hai, can u help to change currency to Ringgit Malaysia, i've tried to do like your previous comment, but failed.

  15. Hello sir,

    Thank you for wonderful formula. I had replaced all dollars to my currency, but I would like to have the currency to be in front of the sentences. Eg, MYR twelve thousand and five cents. Could you please teach me how to do so?

  16. how to use it in Pakistani currency (PKR)

  17. Hi ,how to set 1234 become NGHX (own fix secret text)

  18. Hi There,
    Its a great function.
    Thank you for sharing.

    Also I need to know, how can i get rid off word "Dollar" and use any other currency Name?

    Kind Regards
    Nuwan

    1. Hi Nuwan,

      How to set as below format:

      For example:

      SGD 2000.09
      in Words: Singapore Dollars Two Thousand and cents Nine Only.

      SGD 2000
      in Words: Singapore Dollars Two Thousand Only.

  19. Hi There,
    I tried as you mentioned above. but its not working.
    Appreciate your help.
    Regards
    Nuwan

  20. how to set excel formulas number to word in Sri lanka rupees ?

    1. Option Explicit
      'Main Function
      Function SpellNumber(ByVal MyNumber)
      Dim Rupees, Cents, 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
      Cents = 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 Cents
      Case ""
      Cents = " and No Cents"
      Case "One"
      Cents = " and One Cent"
      Case Else
      Cents = " and " & Cents & " Cents"
      End Select
      SpellNumber = Rupees & Cents
      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

  21. how to set excel formulas number to word in Indian rupees ?

    1. Option Explicit
      'Main Function
      Function SpellNumber(ByVal MyNumber)
      Dim Indian Rupees, Cents, 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
      Cents = 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 Indian Rupees = Temp & Place(Count) & Indian Rupees
      If Len(MyNumber) > 3 Then
      MyNumber = Left(MyNumber, Len(MyNumber) - 3)
      Else
      MyNumber = ""
      End If
      Count = Count + 1
      Loop
      Select Case Indian Rupees
      Case ""
      Indian Rupees = "No Indian Rupees"
      Case "One"
      Indian Rupees = "One Dollar"
      Case Else
      Indian Rupees = Indian Rupees & " Indian Rupees"
      End Select
      Select Case Cents
      Case ""
      Cents = " and No Cents"
      Case "One"
      Cents = " and One Cent"
      Case Else
      Cents = " and " & Cents & " Cents"
      End Select
      SpellNumber = Indian Rupees & Cents
      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

      1. its not working in indian rupee.
        getting an error as following,

        Syntax error

      2. syntax errors

        Dim Indian Rupees, Cents, Temp

        Do While MyNumber ""

        If Temp "" Then Indian Rupees = Temp & Place(Count) & Indian Rupees

        Select Case Indian Rupees

        1. not working
          syntax errors.

      3. Great , It working , Thank you for your support

  22. Thank you for the wonderful formula.
    please help me on how to put the dollar ahead of the numbers.
    i.e.
    Dollar Five Hundred and no cents

  23. sir how can i get text without any currency

    1. Just use this formulla, then copy that text and past it again as value in another cell. Then press 'ctrl+h' and replace "dollars and cents" with "blank".
      I did the same. And Thanks to the editor.

  24. Option Explicit
    'Main Function
    Function SpellNumber(ByVal MyNumber)
    Dim Dhirams, Cents, 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
    Cents = 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 Dhirams = Temp & Place(Count) & Dhirams
    If Len(MyNumber) > 3 Then
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    Else
    MyNumber = ""
    End If
    Count = Count + 1
    Loop
    Select Case Dhirams
    Case ""
    Dhirams = "No Dhirams"
    Case "One"
    Dhirams = "One Dhirams"
    Case Else
    Dhirams = Dhirams & " Dhirams"
    End Select
    Select Case Cents
    Case ""
    Cents = " and No Cents"
    Case "One"
    Cents = " and One Cent"
    Case Else
    Cents = " and " & Cents & " Cents"
    End Select
    SpellNumber = Dhirams & Cents
    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

  25. Hello, Please i need some orientation on the said codes presented above. when i follow the procedure shown above the result i get after gibing the spellnumber command is #NAME? Please how should i proceed with such result.
    Please help me. Thanks

  26. Hi, Thanks for the code.
    When i use the formula for 100.50 it shows "One Hundred Dollars and Fifty Cents"
    Where as i want it to show as " Dollars One Hundred and Cents Fifty Only"
    In Which Dollars & Cents to be shown before the numbers & Only to be shown at the end.
    Please let me know what i need to change in the code to get the above result.
    Thanks & regards,

  27. Hi, need help like as below :
    294,922.30
    Two Hundred Ninety Four Thousand Nine Hundred Twenty Two And Cent Thirty only
    have any code for this?
    help help help & thank you so much...huhu...

  28. Thank you!!! it worked for me..

  29. Can you send the formula as per given below: 1501.250
    "One Thousand Five Hundred One And Baisa 250/1000 Only

  30. i will like to know how to get the currency in Ghana cedis and peswas. the currency input in the formula is dollars. kindly help me.

  31. Hi,
    i tried, but could not get through.
    Numbers: 199600 / 1136540
    To be converted to: Rupees One lakh ninety nine thousand six hundred only. / Rupees Eleven lakh thirty six thousand five hundred fourty only.

    Can any one please help?

  32. DEAR CONCERN,
    JUST LET ME KNOW THE BELOW IN WORD DETAILS:
    $ 2500.23456
    In words: ?

  33. Thank You. It worked perfectly for me.

  34. This is good, but how it is write with CAPS?

  35. thank you this is great

  36. All- I want in this way can someone help- "Rupees Seven Thousand seven Hundred Only" or "INR Seven Thousand Seven Hundred only"

    1. Hello Ravneet!
      I’m sorry but your task is not entirely clear to me.
      For me to be able to help you better, please describe your task in more detail. Please let me know in more detail what you were trying to find, what formula you used and what problem or error occurred. Give an example of the source data and the expected result. It’ll help me understand it better and find a solution for you. Thank you.

      1. First of all- thank you so much for replying.
        Currently I have the Value in my Cell A1- "71,000"
        Spell Check using the above number " Seventy one Thousand Rupees and No Paise"
        I want this desired result to be " Rupees Seventy One Thousand Only"
        The module I have used is as below.
        Option Explicit

        'Main Function

        Function SpellNumber(ByVal MyNumber)

        Dim Rupees, Paise, 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 Paise and set MyNumber to dollar amount.

        If DecimalPlace > 0 Then

        Paise = 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 Paise

        Case ""

        Paise = " and No Paise"

        Case "One"

        Paise = " and One Cent"

        Case Else

        Paise = " and " & Paise & " Paise"

        End Select

        SpellNumber = Rupees & Paise

        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

  37. The formula is working fro just one sheet in the whole workbook. how do i make it work on other sheets without having to retype the formula each time

  38. Hi,
    I have tried the code and its great.
    I would like to use it for Kuwait dinar and need to convert 2 decimal places to 3 decimal places.
    Example:
    now : 5.5 gives - Five dollars and fifty fils
    I need : 5.5 gives - five dollars and five hundred fils
    Please help
    Thank you in advance
    Regards,
    Amal

    1. hello Amal!
      I’m sorry but your task is not entirely clear to me. Could you please describe it in more detail? Also write what exactly you want to receive. Text or number? What formula are you using now? I will try to help you.

  39. Kindly Help me to retrieve the value mentioned below
    The formulae is working fine....
    if the amount is in Lakhs like 318,600.00
    So it shows the amount in Three Hundred Eighteen Thousand Six Hundred and Zero Piase(INR) Only
    I want the result in One Lakh Eighteen Thousand Thousand Six Hundred and Zero Paise Only.

    What changes in the equation formulae in spell number required.

  40. I follow all steps twice but its not work?

    1. Hello Mohamad!
      I can’t guess what you really did. What exactly doesn’t work? For me to be able to help you better, please describe your task in more detail. It’ll help me understand it better and find a solution for you. Thank you.

  41. currently we are using spellnumber like this.
    370,932.04 = Three Hundred Seventy Thousand Nine Hundred Thirty Two & Paiase Four Only
    But i required it should be like this.
    Three Lakh Seventy Thousand Nine Hundred Thirty Two & Paiase Four Only
    Please help me how to do it. Thanks in advance

    1. Hello Rajesh!
      I need more details to help you. Please let me know what formula you are using at the moment and whether you would like to get a number value or a text one. I will try to help you.

  42. I want Indian Rupees Conversation Code

  43. Can you send the formula as per given below: 1500.250
    "One Thousand Five Hundred And Baisa 250/1000 Only

  44. How do this applicable for all new sheets?

    Do i need to copy this entire code into all the new sheets every time, in case if i want to use this function?
    Thanks!

  45. Hello,

    When I am converting Excel File into PDF its now showing Amount in words its showing #NAME?

  46. How to write formula for
    2675.20
    TWO THOUSAND SIX HUNDRED SEVENTY FIVE AND CENTS TWENTY ONLY
    Please help me.

  47. Can you send the formula as per given below: 1500.250
    "One Thousand Five Hundred And Baisa 250/1000 Only

  48. Thank you so much :), It works perfectly

  49. Hi, I need this code for windows 10/Excel 365 in both Euro and Dollars. The one provided on the website doesn't work... it highlights Function SpellNumber(ByVal MyNumber) and errors. Either with #VALUE or just shows the formula. Can someone please help?

  50. Option Explicit
    'Main Function
    Function SpellNumber(ByVal MyNumber)
    Dim Dollars, 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 dollar amount.
    If DecimalPlace > 0 Then
    Cents = 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 Dollars = Temp & Place(Count) & Dollars
    If Len(MyNumber) > 3 Then
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    Else
    MyNumber = ""
    End If
    Count = Count + 1
    Loop
    Select Case Dollars
    Case ""
    Dollars = "No Dollars"
    Case "One"
    Dollars = "One Dollar"
    Case Else
    Dollars = Dollars & " Dollars"
    End Select
    Select Case Cents
    Case ""
    Cents = " and No Cents"
    Case "One"
    Cents = " and One Cent"
    Case Else
    Cents = " and " & Cents & " Cents"
    End Select
    SpellNumber = Dollars & 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

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 :)