本文包含 Microsoft Visual Basic for Applications 函数示例,您可以使用这些函数将 Microsoft Excel 工作表单元格中的数值转换为等效的英文单词。

前期准备工作(包括相关工具或所使用的原料等)
Excel 2003 、 Excel 2007 或 2010创建名为 SpellNumber 的示例函数
启动 Microsoft Excel-----按 Alt+F11 启动 Visual Basic 编辑器-----在“插入”菜单上,单击“模块”


在模块表中键入下面的代码
Option Explicit 'Main Function Function SpellNumber(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 " ' String representation of amount. MyNumber=Trim(Str(MyNumber)) ' Position of decimal place 0 if none. DecimalPlace=InStr(MyNumber, ".") ' Convert cents and set MyNumber to dollar amount. If DecimalPlace > 0 Then Cents=GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2)) MyNumber=Trim(Left(MyNumber, DecimalPlace - 1)) End 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="" End If Count=Count + 1 Loop Select Case Dollars Case "" Dollars="No Dollars" Case "One" Dollars="One Dollar" Case Else Dollars=Dollars & " Dollars" End Select Select Case Cents Case "" Cents=" and No Cents" Case "One" Cents=" and One Cent" Case Else Cents=" and " & Cents & " Cents" End Select SpellNumber=Dollars & Cents End Function ' Converts a number from 100-999 into text Function GetHundreds(ByVal MyNumber) Dim Result As String If Val(MyNumber)=0 Then Exit Function MyNumber=Right("000" & MyNumber, 3) ' Convert the hundreds place. If Mid(MyNumber, 1, 1) <> "0" Then Result=GetDigit(Mid(MyNumber, 1, 1)) & " Hundred " End If ' Convert the tens and ones place. 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 ' Converts a number from 10 to 99 into text. Function GetTens(TensText) Dim Result As String Result="" ' Null out the temporary function value. If Val(Left(TensText, 1))=1 Then ' If value between 10-19... 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 ' If value between 20-99... 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)) ' Retrieve ones place. End If GetTens=Result End Function ' Converts a number from 1 to 9 into text. 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
关闭即可
使用 SpellNumber 示例函数
方法 1:直接输入
通过将下面的公式输入单元格中,可以将 32.50 更改为“Thirty Two Dollars and Fifty Cents”:
=SpellNumber(32.50)
方法 2:单元格引用
可以引用工作簿中的其他单元格。例如,在单元格 A1 中输入数字 32.50,然后在另一单元格中键入下面的公式:
=SpellNumber(A1)
方法 3:插入函数
Excel 2003:
选择所需的单元格。
单击“常用”工具栏中的“插入函数”。
在“或选择类别”下,单击“用户定义”。
在“选择函数”列表中,单击“SpellNumber”,然后单击“确定”。
输入所需的数字或单元格引用,然后单击“确定”。
Excel 2007 和 2010:
选择所需的单元格。
单击“公式”功能区上的“插入函数”。
在“或选择类别”下,单击“用户定义”。
在“选择函数”列表中,单击“SpellNumber”,然后单击“确定”。
输入所需的数字或单元格引用,然后单击“确定”。
如图

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
