0% found this document useful (0 votes)
22 views3 pages

Steps To Use A VBA Function in Excel (Fig To Words Formula)

Uploaded by

zafar.rfr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views3 pages

Steps To Use A VBA Function in Excel (Fig To Words Formula)

Uploaded by

zafar.rfr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Steps to Use a VBA Function in Excel:

1. Press Alt + F11 to open the VBA editor.


2. Go to Insert > Module to create a new module.
3. Copy and paste the following VBA code into the module:

vba
Copy code
Function SpellNumber(ByVal MyNumber)
Dim Units As String, Tens As String, Hundreds As String
Dim TempStr As String
Dim DecimalPlace As Integer, Count As Integer
Dim DecimalString As String
Dim Place(9) As String

Place(2) = " Thousand "


Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "

' Convert MyNumber to string and Trim extra spaces.


MyNumber = Trim(CStr(MyNumber))

' Find Position of decimal place.


DecimalPlace = InStr(MyNumber, ".")

' Convert Decimal part to fraction and assign it to DecimalString


variable.
If DecimalPlace > 0 Then
DecimalString = Right(MyNumber, Len(MyNumber) - DecimalPlace)
MyNumber = Left(MyNumber, DecimalPlace - 1)
End If

Count = 1
Do While MyNumber <> ""
TempStr = GetHundreds(Right(MyNumber, 3))
If TempStr <> "" Then Units = TempStr & Place(Count) & Units
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop

SpellNumber = Application.Trim(Units)
End Function

Function GetHundreds(ByVal MyNumber)


Dim Result As String

If Val(MyNumber) = 0 Then Exit Function


MyNumber = Right("000" & MyNumber, 3)

If Mid(MyNumber, 1, 1) <> "0" Then


Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If

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 = ""
If Val(Left(TensText, 1)) = 1 Then
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
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))
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

4. Close the VBA editor by pressing Alt + Q.


How to Use the Function in Excel:

 To convert a number into words, use the formula in a cell like this:

excel
Copy code
=SpellNumber(A1)

Replace A1 with the reference to the cell containing the number you want to convert.

This will convert the number in cell A1 into words.

You might also like