Private Sub Command1_Click()
If T(0).Text <> "" Then
T(1).Text = NumToWord(T(0).Text)
If T(1).Text <> "" Then
T(1).SelStart = 0
T(1).SelLength = Len(T(1).Text)
T(1).SetFocus
End If
End If
End Sub
'|数字转换为英文表示
Public Function NumToWord(ByVal numstr As Variant) As String
On Error GoTo er:
Dim s As String
Dim ls As Boolean
'|如果数字的第三位为0就为真,否则为假.
If Len(Trim(numstr)) > 3 Then
'|如果数字的位数大于3位就判断第3位的数字是否为0
If Mid(Trim(numstr), Len(Trim(numstr)) - 2, 1) = "0" Then
ls = True
Else
ls = False
End If
End If
DoEvents
Dim arrstr
arrstr = Split(numstr, ".")
numstr = arrstr(0)
If UBound(arrstr) = 1 Then
s = arrstr(1)
s = Replace(s, "1", " one")
s = Replace(s, "2", " two")
s = Replace(s, "3", " three")
s = Replace(s, "4", " four")
s = Replace(s, "5", " five")
s = Replace(s, "6", " six")
s = Replace(s, "7", " seven")
s = Replace(s, "8", " eight")
s = Replace(s, "9", " nine")
s = Replace(s, "0", " zero")
s = " point " + s
ElseIf UBound(arrstr) > 1 Then
NumToWord = ""
MsgBox "小数点多于一个"
Exit Function
ElseIf UBound(arrstr) = 0 Then
s = ""
End If
DoEvents
Dim tempstr As String
Dim newstr As String
numstr = CDec(numstr)
If numstr = 0 Then
NumToWord = "zero "
Exit Function
End If
If numstr > 10 ^ 24 Then
NumToWord = "Too big"
Exit Function