Excel 如何将数字转换为文字

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将您的数字视为文本,这有所不同。通常,您需要在Excel中更改单元格格式,进行以下操作:

  • 选择包含数字的范围。
  • 按下Ctrl + 1键,以在 数字 选项卡上选择 文本 选项,选择 类别文本

如何使用SpellNumber VBA宏将数字转换为单词

微软不想添加用于将数字转换为单词的工具。但是他们在他们的网站上创建和发布了特殊的VBA宏。

您可以找到被提及为”spellnumber formula”的宏。然而,这不是一个公式,而是一个宏函数或Excel用户定义的函数(UDF)。

SpellNumber选项可以写入美元和美分。如果您需要其他货币,请用您选择的货币替换”美元”和”美分”。下面您将找到一个VBA代码,并按照以下步骤进行操作:

步骤1: 打开需要将数字拼写为单词的工作簿。

步骤2: 按下Alt + F11键,打开Visual Basic编辑器窗口。

如果您打开了多个工作簿,请使用编辑器左上角的项目列表,检查所需的工作簿是否为活动工作簿,或者是否突出显示的工作簿元素为蓝色。

步骤3: 在编辑器菜单中,转到 插入 选项卡,点击 模块 按钮。

Excel 如何将数字转换为文字

步骤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来保存更新后的工作表。

需要重新保存工作簿。当您尝试保存带有宏的工作簿时,您会收到消息,” 以下功能无法保存在不带宏的工作簿中 “.

Excel 如何将数字转换为文字

步骤6: 出现一个VB项目对话框。点击 No 按钮。

步骤7: 您可以将文件保存为 Excel启用宏的工作簿(.xlsm) 以保持文件的当前格式。

  • 点击文件选项卡。
  • 选择”另存为”选项。
  • 点击 保存类型 下拉菜单。
  • 保存类型 字段中,选择” Excel启用宏的工作簿 “文件类型。

Excel 如何将数字转换为文字

步骤8: 点击 保存 按钮以保存文件。

在Excel中使用宏进行数字转换的缺点

  • 首先,您必须了解VBA,根据您的需求修改代码。必须将代码粘贴到计划更改的每个工作簿中。否则,您需要创建一个带有宏的模板文件,并配置Excel在每次启动时加载此文件。
  • 使用宏的主要缺点是,如果您将工作簿发送给其他人,除非该宏内置于工作簿中,否则对方将看不到文本。即使内置了宏,他们也会收到有关工作簿中存在宏的警告。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程