Function NumbToEnglish(ByVal MyNumber)
Dim Temp
Dim Inte, Dec
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = \" Thousand \"
Place(3) = \" Million \"
Place(4) = \" Billion \"
Place(5) = \" Trillion \"
\' 将数字Mynumber转换成字符串格式,并去掉多余空格
MyNumber = Trim(Str(MyNumber))
\' 查找小数点“.”位置
DecimalPlace = InStr(MyNumber, \".\")
\' 如果找到小数点...
If DecimalPlace > 0 Then
\' 转换小数部分
Temp = Len(Mid(MyNumber, DecimalPlace + 1))
Count = 1
Dec = \"\"
Do While Count1))
End If
Count = 1
Do While MyNumber \"\"
\' 将最后的三位数字转换成英文数字
Temp = ConvertHundreds(Right(MyNumber, 3))
If Temp \"\" Then Inte = Temp & Place(Count) & Inte
If Len(MyNumber) > 3 Then
\' 如果整数部分大于三位,再向前移动三位数字重复进行转换
MyNumber = Left(MyNumber, Len(MyNumber)19 之间?
If Val(Left(MyTens, 1)) = 1 Then
Select Case Val(MyTens)
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
\' ..否则,它是介于 20 - 99 之间.
Select Case Val(Left(MyTens, 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
\' 转换其中的个位数.
If Val(Right(MyTens, 1)) = 0 Then
Result = Result & \" \" & ConvertDigit(Right(MyTens, 1))
Else
Result = Result & \"-\" & ConvertDigit(Right(MyTens, 1))
End If
End If
ConvertTens = Result
End Function
\' 定义子函数,转换个位数
Private Function ConvertDigit(ByVal MyDigit)
Select Case Val(MyDigit)
Case 1: ConvertDigit = \"One\"
Case 2: ConvertDigit = \"Two\"
Case 3: ConvertDigit = \"Three\"
Case 4: ConvertDigit = \"Four\"
Case 5: ConvertDigit = \"Five\"
Case 6: ConvertDigit = \"Six\"
Case 7: ConvertDigit = \"Seven\"
Case 8: ConvertDigit = \"Eight\"
Case 9: ConvertDigit = \"Nine\"
Case Else: ConvertDigit = \"\"
End Select
End Function
\' 定义子函数,转换小数部分
Private Function ConvertDecimal(ByVal MyDecimal)
Select Case Val(MyDecimal)
Case 1: ConvertDecimal = \"One\"
Case 2: ConvertDecimal = \"Two\"
Case 3: ConvertDecimal = \"Three\"
Case 4: ConvertDecimal = \"Four\"
Case 5: ConvertDecimal = \"Five\"
Case 6: ConvertDecimal = \"Six\"
Case 7: ConvertDecimal = \"Seven\"
Case 8: ConvertDecimal = \"Eight\"
Case 9: ConvertDecimal = \"Nine\"
Case Else: ConvertDecimal = \"Zero\"
End Select
End Function
Sub bbb() MsgBox NumbToEnglish(123.31) End Sub
然后再按ALF+F11,切换回EXCEL窗口,假如100在A1单元格,你在B1单元格输入 =NUMBTOENGLISH(A1) 最后下拉填充即可。
英文书法【Copperplate】第二部分——大写、数字及标点