How to quickly convert currency numbers to words in Excel?
When working with financial data in Excel, there may be times when you need to convert currency numbers into words, such as writing out check amounts. Unfortunately, Excel does not provide a built-in function for this, but there are two effective methods to achieve this. This article will guide you through both methods, helping you choose the best approach based on your needs.

Spell out currency numbers to words with VBA code
Spell out currency numbers to words with Kutools for Excel ![]()
| Feature | VBA User-Defined Function | Kutools for Excel |
|---|---|---|
| Best for | Users who want a reusable custom function for converting currency numbers to English words | Best for fast batch conversion, international currencies, or multilingual output |
| Output format | Converts values to words such as Dollars and Cents | Converts selected values to currency words based on the chosen language/currency |
| Currency support | USD by default; other currencies require modifying the VBA code | Supports 40+ currency formats, including USD, EUR, GBP, JPY, CNY, and more |
| Language support | English in the provided code | Supports multiple languages |
| Setup complexity | Advanced | Very simple |
| Main advantage | Reusable and customizable | Fast, no coding, and supports many currencies and languages |
| Main limitation | Requires VBA knowledge and code maintenance | Requires Kutools for Excel |
Spell out currency numbers to words with VBA code
In Excel, you cannot quickly convert numbers to English words except VBA.
1. Press "Alt + F11" keys to open the "Microsoft Visual Basic for Application" window.
2. Click "Insert" > "Module" and paste below VBA to the new Module window.
VBA: Convert currency numbers to English words
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 this code and close the window to go back to the worksheet, and select a blank cell type this formula: =SpellNumberToEnglish(A2) (A2 is the currency numbers), and press Enter key, then drag the fill handle down to apply this formula to the cells you need. See screenshots:



Spell out currency numbers to words with handy Spell Out Numbers function
For those who do not want to use VBA, Kutools for Excel provides a simple, one-click way to convert numbers into words. The "Numbers to Words" feature in Kutools for Excel supports converting numbers into words in over 40 different currency formats, making it an ideal solution for financial reporting and international transactions. With just a few clicks, users can transform numerical values into fully formatted currency text in multiple languages, including USD, EUR, GBP, JPY, CNY, and more, eliminating the need for manual conversions and reducing errors.
1. Select the currency numbers and click "Kutools" > "Content" > "Numbers to Words". See screenshot:

2. In the "Numbers to Currency Words" dialog, choose the language that you want to use; here I will select the "English" option from the "Languages" list box, see screenshot:

3. Click "OK" or "Apply". Then the currency numbers you selected have been converted to specific currency word.

Conclusion
Converting currency numbers into words can make invoices, checks, financial reports, and other documents easier to read and verify.
Use a VBA User-Defined Function when you want a reusable and customizable solution and are comfortable working with macros. For a faster setup, Kutools for Excel can convert selected currency values directly without coding, while supporting multiple currencies and languages.
Tip: Before converting, choose the correct currency and language so the generated words match the format required in your document.
Choose the method based on whether you need VBA-level customization or a simpler batch-conversion solution for different currencies and languages.
Demo: Convert Currency Number To Words using Kutools for Excel
Best Office Productivity Tools
Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time. Click Here to Get The Feature You Need The Most...
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
All Kutools add-ins. One installer
Kutools for Office suite bundles add-ins for Excel, Word, Outlook & PowerPoint plus Office Tab Pro, which is ideal for teams working across Office apps.
- All-in-one suite — Excel, Word, Outlook & PowerPoint add-ins + Office Tab Pro
- One installer, one license — set up in minutes (MSI-ready)
- Works better together — streamlined productivity across Office apps
- 30-day full-featured trial — no registration, no credit card
- Best value — save vs buying individual add-in