如何在 Excel 中将数值转换为英文单词

作者:国际小甜 | 创建时间: 2023-04-05
本文包含 Microsoft Visual Basic for Applications 函数示例,您可以使用这些函数将 Microsoft Excel 工作表单元格中的数值转换为等效的英文单词。...
如何在 Excel 中将数值转换为英文单词

创建名为 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”,然后单击“确定”。 输入所需的数字或单元格引用,然后单击“确定”。

如图

点击展开全文

更多推荐