您目前已離線,請等候您的網際網路重新連線

如何在 Excel 中將數值轉換成英文字

Office 2003 支援已結束

Microsoft 於 2014 年 4 月 8 日結束對 Office 2003 的支援。此變更已影響您的軟體更新和安全性選項。 瞭解這對您的意義為何且如何持續受保護。

結論
本文包含 Microsoft Visual Basic for Applications 函數的範例,您可用於將 Microsoft Excel 工作表儲存格中的數值轉換成同等的英文字。
其他相關資訊
Microsoft 僅提供示範性的程式設計範例,不做任何明示或默示的擔保。其中包含 (但不限於) 其適售性或適合某特定用途之默示擔保。本文假設您已相當熟悉示範所用的程式設計語言,以及用於建立和偵錯程序的工具。Microsoft 技術支援工程師可以協助說明特定程序的功能,但無法修改這些範例以提供附加功能或建構程序以滿足您的特定需求。

如何建立名為 SpellNumber 的範例函數

  1. 啟動 Microsoft Excel。
  2. 按下 ALT+F11 以啟動 Visual Basic 編輯器。
  3. [插入] 功能表上,按一下 [模組]
  4. 在模組工作表中輸入下列程式碼。
    Option Explicit'Main FunctionFunction 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 & CentsEnd 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 = ResultEnd 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 = ResultEnd 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 SelectEnd Function					

如何使用 SpellNumber 範例函數

如果要使用範例函數將數字變更為書寫文字,請使用在下列範例中示範的其中一種方法:

方法 1:直接輸入

您可以在儲存格中輸入下列公式,將 32.50 變更為「三十二元五角」:
=SpellNumber(32.50)

方法 2:儲存格參照

您可以參照活頁簿中的其他儲存格。例如,在儲存格 A1 中輸入數字 32.50,然後在另一個儲存格中輸入下列公式:
=SpellNumber(A1)

方法 3:插入函數

如果要使用 [插入函數],請依照下列步驟執行:


Excel 2003:
  1. 選取您要的儲存格。
  2. 按一下 [一般] 工具列上的 [插入函數]
  3. [或選取類別] 下,按一下 [使用者定義]
  4. [選取函數] 清單中,按一下 [SpellNumber],然後按一下 [確定]
  5. 輸入您要的數字或儲存格參照,然後按一下 [確定]

Excel 2007 及 2010:
  1. 選取您要的儲存格。
  2. 按一下 [公式] 功能區上的[插入函數]
  3. [或選取類別] 下,按一下 [使用者定義]
  4. [選取函數] 清單中,按一下 [SpellNumber],然後按一下 [確定]
  5. 輸入您要的數字或儲存格參照,然後按一下 [確定]



XL2003 XL2007 XL2010 Number Numbers Currency spell 
注意 :本文屬於「快速發佈」文章,係由 Microsoft 技術支援或組織內部直接建立。 本文所包含的資訊是為了回應新問題而依現況提供。 因此為了迅速對外發佈,文章內容可能含有印刷錯誤,而且可能會在不另行通知的情況下進行修改。 如需其他考量事項,請參閱使用規定
內容

文章識別碼:213360 - 最後檢閱時間:10/29/2015 14:08:00 - 修訂: 3.0

Microsoft Office Excel 2003, Microsoft Office Excel 2007, Microsoft Excel 2010, Excel 2016, Microsoft Excel 2013

  • kbdtacode kbhowto kbprogramming KB213360
意見反應