数字转换为英文对于英语比较差的同学来说是很难的一件事情,我们能不能用VBA代码来轻松实现这个过程呢?现在我们就用ExcelVba代码来实现这个操作。

前期准备工作(包括相关工具或所使用的原料等)
Excel软件
编写代码:
新建如图所示的Excel表格,我们讲吧A列中的数字用英文的形式转换到B列中。

按住“Alt+F11”打开VBA编辑器,如图所示。

在VBA编辑器中单击菜单栏“插入”——模块,如图所示。

在打开的模块中输入如下代码:
Option Explicit
Function 数字转英文(ByVal MyNumber)
Dim Dollars, Cents, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2)=" Thousand "
Place(3)=" Million "
Place(4)=" Billion "
Place(5)=" Trillion "
MyNumber=Trim(Str(MyNumber))
DecimalPlace=InStr(MyNumber, ".")
If DecimalPlace > 0 Then
Cents=GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
"00", 2))
MyNumber=Trim(Left(MyNumber, DecimalPlace - 1))
If
Count=1
Do While MyNumber <> ""
Temp=GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Dollars=Temp & Place(Count) & Dollars
If Len(MyNumber) > 3 Then
MyNumber=Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber=""
If
Count=Count + 1
Loop
Select Case Dollars
Case ""
Dollars="No Dollars"
Case "One"
Dollars="One Dollar"
Case Else
Dollars=Dollars & " Dollars"
Select
Select Case Cents
Case ""
Cents=" and No Cents"
Case "One"
Cents=" and One Cent"
Case Else
Cents=" and " & Cents & " Cents"
Select
数字转英文=Dollars & Cents
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 "
If
If Mid(MyNumber, 2, 1) <> "0" Then
Result=Result & GetTens(Mid(MyNumber, 2))
Else
Result=Result & GetDigit(Mid(MyNumber, 3))
If
GetHundreds=Result
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
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
Select
Result=Result & GetDigit _
(Right(TensText, 1))
If
GetTens=Result
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=""
Select
Function

调用函数:
现在回到Excel表格中,单击“B1”单元格,在菜单栏选择“插入”——函数。

在打开的“插入函数”对话框的“或选择类别”中选择“用户定义”,然后选择函数“数字转英文”,单击“确定”按钮。

在打开的“函数参数”对话框中输入“A1”,单击“确定”按钮。

然后用填充手柄向下填充公式,现在就可以看到转换好的英文了。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本文系本人依照真实经历原创,未经许可,谢绝转载。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
