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

Convert Numbers to Kyats Words

The document contains a VBA function, SpellNumberKyats, which converts a numeric value into its corresponding text representation in Kyats. It handles numbers up to trillions and formats them appropriately, including the insertion of 'and' for the last two-digit number. The document also includes helper functions to convert hundreds, tens, and individual digits into words.

Uploaded by

Wutt Yi
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)
19 views3 pages

Convert Numbers to Kyats Words

The document contains a VBA function, SpellNumberKyats, which converts a numeric value into its corresponding text representation in Kyats. It handles numbers up to trillions and formats them appropriately, including the insertion of 'and' for the last two-digit number. The document also includes helper functions to convert hundreds, tens, and individual digits into words.

Uploaded by

Wutt Yi
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

Function SpellNumberKyats(ByVal MyNumber)

Dim Units As String

Dim TempStr As String

Dim DecimalPlace As Integer

Dim Count As Integer

Dim Place(9) As String

Dim Digits As String

' Define place values

Place(2) = " Thousand "

Place(3) = " Million "

Place(4) = " Billion "

Place(5) = " Trillion "

' Convert MyNumber to string and remove spaces

MyNumber = Trim(CStr(MyNumber))

' Handle decimal places (ignore decimals since Kyats don’t use cents)

DecimalPlace = InStr(MyNumber, ".")

If DecimalPlace > 0 Then

MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))

End If

Count = 1

Do While MyNumber <> ""

Digits = Right(MyNumber, 3)

MyNumber = Left(MyNumber, Len(MyNumber) - Len(Digits))

If Val(Digits) > 0 Then

TempStr = GetHundreds(Digits) & Place(Count) & TempStr

End If

Count = Count + 1

Loop

' Insert "and" before the last two-digit number

Dim Words() As String

Words = Split([Link](TempStr))
Dim i As Integer

For i = UBound(Words) To 1 Step -1

If IsNumeric(Words(i)) = False Then

If Val(Words(i)) >= 20 And Val(Words(i - 1)) >= 100 Then

Words(i - 1) = Words(i - 1) & " and"

Exit For

End If

End If

Next i

SpellNumberKyats = Join(Words, " ") & " Kyats only"

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 = Trim(Result)

End Function

Function GetTens(TensText)

Dim Result As String

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 = Trim(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

You might also like