Many a times we require to change the Numbers in Words. **For Example: 6734862=Sixty Seven Lakhs Thirty Four Thousand Eight Hundred Sixty Two.** In Excel, there is no Formula as such to Convert Numbers in Words. I have written one **UDF : User Defined Function**. After using this Function, you will be able to change any numbers in Words. Now there can be two way of converting Numbers in to Words in terms of Millions, Billions etc or Other way it could be in Lakhs and Crores.

## How to Convert Numbers in Words or Currency to Words

**Step 1. ** Open your Excel Workbook**Step 2. ** Press Alt + F11**Step 3. ** Now Add a Regular Module in Excel**Step 4. ** Now Copy and Paste the Below Code in the Module**Step 5. ** Once you have copied and Pasted the Below Code in a Module, you can use the Below Formula in your Workbook in any WorkSheet as shown in Below Picture:

**Currenct2Word(B5)**

**B5 : ** Is the Cell Address Where the Number is there

```
Function Currency2Word(ByVal MyNumber)
Dim WithoutCrore, Crore, DecimalPlace
Dim DecimalNumber
MyNumber = Trim(Str(MyNumber))
'get the Decimal Position
DecimalPlace = InStr(MyNumber, ".")
'Get the Decimal Part of the whole Number
If DecimalPlace 0 Then
DecimalNumber = Right(MyNumber, Len(MyNumber) - DecimalPlace)
Else
DecimalNumber = ""
End If
'Get the Decimal Free Number
If DecimalPlace > 0 Then
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
'Divide the Decimal Free Number in 2 part - WithoutCrore and Crore
'WithoutCrore Will have only that part part which has Less than Crore
'Crore Will have only Crore Part
If DecimalNumber "" Then
WithoutCrore = Right(MyNumber, 7) & "." & DecimalNumber
Else
WithoutCrore = Right(MyNumber, 7)
End If
Crore = Left(MyNumber, Len(MyNumber) - Len(Right(MyNumber, 7)))
If Crore "" Then
'If the amount is greater than Crore
Currency2Word = CurrToWord(Crore) & " Crore " & CurrToWord(WithoutCrore)
Else
'If the amount is lesser than Crore
Currency2Word = CurrToWord(WithoutCrore)
End If
End Function
Function CurrToWord(ByVal MyNumber)
Dim WholeNumber, Deci, Var
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Lakhs "
'String representation of amount.
MyNumber = Trim(Str(MyNumber))
'Get the Decimal Place if any
DecimalPlace = InStr(MyNumber, ".")
' Convert Deci and set MyNumber to Rupee amount.
If DecimalPlace > 0 Then
Deci = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
"00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
If Len(Trim(Str(MyNumber))) Mod 2 = 0 Then
MyNumber = "0" & Trim(Str(MyNumber))
Else
MyNumber = Trim(Str(MyNumber))
End If
Count = 1
If Len(MyNumber) = 1 Then
MyNumber = "00" & MyNumber
End If
Do While MyNumber ""
If Count = 1 Or Count > 7 Then
Var = GetHundreds(Right(MyNumber, 3))
Else
Var = GetTens(Right(MyNumber, 2))
End If
If Var "" Then WholeNumber = Var & Place(Count) & WholeNumber
If Len(MyNumber) >= 1 And Count = 1 And Count > 1 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 2)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
If (Deci = "") Then
CurrToWord = WholeNumber & Deci
Else
CurrToWord = WholeNumber & " and " & Deci & " Paise Only"
End If
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 = GetSingleDigit(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 & GetSingleDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function
' This will Convert a number from 10 to 99 into text.
'**********************************************************
Function GetTens(TensText)
Dim Result As String
Result = "" ' Null out the Varorary 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 & GetSingleDigit _
(Right(TensText, 1)) ' Retrieve ones place.
End If
GetTens = Result
End Function
' Converts a number from 1 to 9 into text.
'****************************************************
Function GetSingleDigit(SingleDigit)
Select Case Val(SingleDigit)
Case 1: GetSingleDigit = "One"
Case 2: GetSingleDigit = "Two"
Case 3: GetSingleDigit = "Three"
Case 4: GetSingleDigit = "Four"
Case 5: GetSingleDigit = "Five"
Case 6: GetSingleDigit = "Six"
Case 7: GetSingleDigit = "Seven"
Case 8: GetSingleDigit = "Eight"
Case 9: GetSingleDigit = "Nine"
Case Else: GetSingleDigit = ""
End Select
End Function
```

## Download Excel File with the Above User Defined Function ( UDF )

To Check out Excel Macro Tutorials, visit Excel Macro Tutorial |

Learn Excel Macro How to create User Defined Function in ExcelMay 4, 2014 at 9:00 pm[…] UDF – Is File Open? UDF to Convert Currency to Words UDF to Count Words in Cell UDF to Extract Numbers from a cell UDF to Extract Special Characters […]

Welcome to LearnExcelMacro.com FREE Download - Automated Invoice Template in ExcelMarch 7, 2017 at 8:34 am[…] Total Amount in Invoice will also get converted in text by using Excel VBA function to convert currency in word. You can change it from Rupees to Dollar or any other… […]

How to create User Defined Functions in Excel - Welcome to LearnExcelMacro.comSeptember 5, 2017 at 10:14 am[…] 2. UDF to Convert Currency to Words […]