Excel 如何将数字转换为文字
最初,Microsoft Excel是用来处理大型数据数组的。然而,它也可以快速有效地创建会计记录,如发票、评估报告或资产负债表。
在一些付款文件中,需要将数字与其对应的文字形式重复显示。 Excel 并没有默认的函数来在工作表中将数字显示为英文单词。但是,你可以通过将以下 SpellNumber 函数代码粘贴到VBA(Visual Basic for Applications)模块中来添加此功能。这个函数可以让你用公式将 美元 和 美分 金额转换为文字。
例如,25.50将显示为二十五美元五十美分。如果你将Excel用作打印支票的模板,这将非常有用。所以你需要的不仅仅是将数字转换为文字在Excel中(123.45转换为一百二十三,四十五),还需要将美元和美分转换为文字($29.95转换为二十九美元九十九美分),英镑和便士转换为文字(GBP),欧元和欧分转换为文字(EUR)等。
如果你想将数字值转换为文本格式,而不是以文字形式显示,可以使用 TEXT函数 作为替代方法。
即使是Excel 2016也没有内置的拼写数字工具,更不用说更早的版本了。但是这正是Excel非常出色的地方。你总可以通过使用各种公式组合、VBA宏或第三方插件来改进其功能。
如果您想要将数字转换为文本,即让Excel将您的数字视为文本,这有所不同。通常,您需要在Excel中更改单元格格式,进行以下操作:
- 选择包含数字的范围。
- 按下Ctrl + 1键,以在 数字 选项卡上选择 文本 选项,选择 类别 为 文本 。
如何使用SpellNumber VBA宏将数字转换为单词
微软不想添加用于将数字转换为单词的工具。但是他们在他们的网站上创建和发布了特殊的VBA宏。
您可以找到被提及为”spellnumber formula”的宏。然而,这不是一个公式,而是一个宏函数或Excel用户定义的函数(UDF)。
SpellNumber选项可以写入美元和美分。如果您需要其他货币,请用您选择的货币替换”美元”和”美分”。下面您将找到一个VBA代码,并按照以下步骤进行操作:
步骤1: 打开需要将数字拼写为单词的工作簿。
步骤2: 按下Alt + F11键,打开Visual Basic编辑器窗口。
如果您打开了多个工作簿,请使用编辑器左上角的项目列表,检查所需的工作簿是否为活动工作簿,或者是否突出显示的工作簿元素为蓝色。
步骤3: 在编辑器菜单中,转到 插入 选项卡,点击 模块 按钮。
步骤4: 你会看到一个名为Module1的窗口。请在下面的框架中选择所有的代码并将其粘贴到此窗口中。
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 "
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))
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
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 one's 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
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
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
步骤5: 按下Ctrl + S来保存更新后的工作表。
需要重新保存工作簿。当您尝试保存带有宏的工作簿时,您会收到消息,” 以下功能无法保存在不带宏的工作簿中 “.
步骤6: 出现一个VB项目对话框。点击 No 按钮。
步骤7: 您可以将文件保存为 Excel启用宏的工作簿(.xlsm) 以保持文件的当前格式。
- 点击文件选项卡。
- 选择”另存为”选项。
- 点击 保存类型 下拉菜单。
- 在 保存类型 字段中,选择” Excel启用宏的工作簿 “文件类型。
步骤8: 点击 保存 按钮以保存文件。
在Excel中使用宏进行数字转换的缺点
- 首先,您必须了解VBA,根据您的需求修改代码。必须将代码粘贴到计划更改的每个工作簿中。否则,您需要创建一个带有宏的模板文件,并配置Excel在每次启动时加载此文件。
- 使用宏的主要缺点是,如果您将工作簿发送给其他人,除非该宏内置于工作簿中,否则对方将看不到文本。即使内置了宏,他们也会收到有关工作簿中存在宏的警告。