How to convert currency to words text in Excel?
For non-native speakers who use English as their second language, sometimes is hard to directly change the currency number to English words when the number is too long. In this article, you will learn how to easily convert currency to words text in Excel.
Convert currency to words with VBA code
Convert currency 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 |
Convert currency to words with VBA code
With the below VBA code, you can convert currency number to English words.
1. Press Alt + F11 to open the Microsoft Visual Basic for Applications dialog box.
2. In the Microsoft Visual Basic for Applications dialog box, click Insert > Module. Then copy and paste the below code into the code window.
VBA code: Convert currency number to English Words
Function NumberstoWords(ByVal pNumber)
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
NumberstoWords = 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. Press Alt + Q keys simultaneously to close the Microsoft Visual Basic for Applications dialog box.
4. Select a blank cell (B1) which is adjacent to the cell you want to convert to words, enter the formula =NumberstoWords(A1), and then press the Enter key.

Note: A1 is the cell contains the currency number. You can change it as you need.
5. Select the cell B1, drag the Fill Handle down to get all English words of the currency numbers.

Convert currency to words with Kutools for Excel
If you prefer not to use VBA, Kutools for Excel offers a much easier solution with its Numbers to Words feature. It can quickly convert numbers into words in 40+ currency formats, including USD, EUR, GBP, JPY, CNY, and more. With just a few clicks, you can generate properly formatted currency text in multiple languages, making it especially useful for financial reports, invoices, and international transactions while reducing manual work and conversion errors.
Before applying Kutools for Excel, please download and install it firstly.
1. Select the cells with the currency numbers you want to convert.
2. Click Kutools > Content > Numbers to Words. See screenshot:

3. In the Numbers to Currency Words dialog box, select English option, and click the OK or Apply button.

Now the selected currency numbers are converted to English words immediately.

Kutools for Excel - Supercharge Excel with over 300 essential tools, making your work faster and easier, and take advantage of AI features for smarter data processing and productivity. Get It Now
Conclusion
Converting currency values into words can improve clarity and accuracy in invoices, checks, financial reports, and other business documents.
If you are comfortable with macros and need a reusable, customizable solution, a VBA User-Defined Function is a good choice. If you prefer a faster and easier method, Kutools for Excel lets you convert selected numbers into words without coding and supports multiple currencies and languages.
Choose the method that best fits your needs—VBA for greater flexibility and customization, or Kutools for Excel for quick and convenient batch conversion.
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