## How to spell out or convert numbers to English words in Excel?

Supposing you have a lot of price amount numbers, and now you need to convert or spell out them to text strings. For example, convert 123.55 to the English words one hundred twenty-three dollars and fifty five cents. In Excel there are no effective facility to solve this problem but using the long and complex VBA code. In this article, I will introduce you some methods to deal with it.

**Spell out or convert numbers to English words with VBA code**

**Spell out or convert numbers to English words with Kutools for Excel**

**Kutools for Excel**: add 120 new features in Excel. Save one hour every day.

**Classic Menu for Office**: brings back classic menus to Office 2010 and 2013 (includes Office 365).

**Office Tab**: brings tabbed interface to Office as the use of web browser Chrome, Firefox and Internet Explorer.

** Spell out or convert numbers to English words with VBA code**

The following long VBA code can help you to spell out numbers to text strings. Do as follows:

**1**. Hold down the** ALT + F11** keys, and it opens the **Microsoft Visual Basic for Applications** window.

**2**. Click **Insert** >** Module**, and paste the following macro in the** Module**window.

Function SpellNumberToEnglish(ByVal pNumber) 'Updateby20131113 Dim Dollars, Cents arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ") pNumber = Trim(Str(pNumber)) xDecimal = InStr(pNumber, ".") If xDecimal > 0 Then Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2)) pNumber = Trim(Left(pNumber, xDecimal - 1)) End If xIndex = 1 Do While pNumber <> "" xHundred = "" xValue = Right(pNumber, 3) If Val(xValue) <> 0 Then xValue = Right("000" & xValue, 3) If Mid(xValue, 1, 1) <> "0" Then xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred " End If If Mid(xValue, 2, 1) <> "0" Then xHundred = xHundred & GetTens(Mid(xValue, 2)) Else xHundred = xHundred & GetDigit(Mid(xValue, 3)) End If End If If xHundred <> "" Then Dollars = xHundred & arr(xIndex) & Dollars End If If Len(pNumber) > 3 Then pNumber = Left(pNumber, Len(pNumber) - 3) Else pNumber = "" End If xIndex = xIndex + 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 SpellNumberToEnglish = Dollars & Cents End Function Function GetTens(pTens) Dim Result As String Result = "" If Val(Left(pTens, 1)) = 1 Then Select Case Val(pTens) 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 Select Case Val(Left(pTens, 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(pTens, 1)) End If GetTens = Result End Function Function GetDigit(pDigit) Select Case Val(pDigit) 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

**3**. Then save the code, and return to the worksheet, in the adjacent cell E1, enter the formula **=SpellNumberToEnglish(D1)**, see screenshot:

**4**. Then press **Enter** key, and select the cell E1, then drag the fill handle over to the range that contains this formula as you need. And all of the numbers have been spelt out to English words. See screenshot:

**Note**: As they are formulas, when you need to copy and paste them, please paste as values.

** Spell out or convert numbers to English words with Kutools for Excel**

Maybe the above long code can make you be mad, please don't worry, here I can give you an easy and quick way to solve it.

With the **Kutools for Excel**’s **Spell Out Numbers** function, you can quickly and conveniently convert the numbers to text Strings.

**Kutools for Excel **includes more than 120 handy Excel tools. Free to try with no limitation in 30 days. **Get it Now**.

When you have installed Kutools for Excel, please do as following steps:

**1**. Select the range numbers that you want to spell out.

**2**. Click **Kutools** > **Content Converter** > **Spell Out Numbers**. See screenshot:

**3**. In the **Spell Out Numbers** dialog box, choose** English** from the** Languages**. And you can preview the results from the right **Preview** Pane. See screenshot:

**4**. Then click **OK** or **Apply**. And all of the price amount numbers have been converted to text strings in the original range.

**Note**: If you need the Chinese price amount words, please click** Chinese** option from the** Languages**.

**Click Spell Out Numbers to know more about this feature**.

## Comments

Thank you in advance

Example is in my general data is 50.576 but when I rounded it off and become 50.58, Words doesn't change/convert according to the new value.

Its is a very good formula, But I need the words in Indian formats

PLEASE ADVICE

would really appreciate your response.

replace word "dollar" with "Rupees"

Then

Replace word "cents" with "Paisa"

go back to excel file

press alt+F11

insert>>> module >> paste the entire word file till "end function"

do .....=SpellNumberToEnglish(cellref)

& you are good to go

I tried to save the macro as you mentioned above. and it is working fine. but if i close the excel and open a new sheet, it is not working . pls help

Thanks a lot

eg.

1. 10.50 Metric Tons (MT) should write as "10 Tons and 500 kgs"

2. 12.345 MT = Twelve Tons and Three hundred Forty Five Kgs

Need 3 decimal places atleast and 4 is even better.

max 9999.9999 is how i want.

Can someone please help?

its working

thank you so much

I also faced same issue, any help please. thanks