將數字轉換成文字

Excel 2013 和 Excel 2016 不具備能將試算表儲存格中的數字以英文顯示的預設功能,但您可以透過在模組工作表中貼上 SpellNumber 函數程式碼的方式新增此功能。此函數能自動為您將美元 (Dollar) 和美分 (Cent) 的數值轉換成文字。

如果您想要將數值格式轉換成文字格式,但不將數字轉換成文字顯示,請改為使用 TEXT 函數

本文內容

建立 SpellNumber 函數,將數字轉換成文字

  1. 使用鍵盤快速鍵「Alt + F11」開啟 Visual Basic 編輯器。

    附註: 您也可以在功能區中顯示 [開發人員] 索引標籤,藉此存取 Visual Basic 編輯器。

  2. 按一下 [插入] 索引標籤,再按一下 [模組]。

    在 [插入] 功能表上,按一下 [模組]。
  3. 複製下列程式碼行。

    附註: 此程式碼屬於「巨集函數」,可自動將您整份試算表中的數字轉換成文字。

    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

  4. 將上述程式碼行貼入 [模組1 (程式碼)] 方塊中。

    貼入至 Module1 (Code) 方塊的程式碼。
  5. 依序按一下 [檔案] 和 [關閉並返回 Microsoft Excel]。現在即可使用 SpellNumber 函數。

    附註: 此函數只會在您已開啟的現有 Excel 檔案中執行。若要在另一份 Excel 活頁簿中使用此函數,您必須重複上述步驟,將程式碼複製貼至該檔案中。

頁面頂端

在個別儲存格中使用 SpellNumber 函數

  1. 在您要顯示數字書寫體的儲存格中,輸入下列公式 =SpellNumber(「值」),並以您所需的數字取代「值」。

  2. 按鍵盤上的 Enter 鍵。

    例如,如果您輸入 =SpellNumber(22.50),儲存格就會顯示為 Twenty-Two Dollars and Fifty Cents

    提示: 若要將個別儲存格中的數字轉換成文字,請以儲存格參照取代 SpellNumber 公式中的數值。例如,輸入 =SpellNumber(A1) 即會顯示儲存格 A1 的數值書寫體。

頁面頂端

儲存您的 SpellNumber 函數活頁簿

Excel 無法以無巨集的標準活頁簿格式,儲存含有巨集函數的活頁簿。若按一下 [檔案] > [儲存]。[VB 專案] 對話方塊隨即開啟。按一下 [否]。

在 VB 專案對話方塊中,按一下 [否]。

您可以將檔案儲存為 [Excel 啟用巨集的範本],以該格式儲存您的檔案。

  1. 按一下 [檔案] > [另存新檔]。

  2. 按一下 [存檔類型] 下拉式功能表,然後選取 [Excel Macro-Enabled Template]。

    選擇啟用巨集的 Excel 範本。
  3. 按一下 [儲存]。

頁面頂端

請參閱

TEXT 函數

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×