文章編號: 213360 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文包含 Microsoft Visual Basic for Applications 函數的範例,您可用於將 Microsoft Excel 工作表儲存格中的數值轉換成同等的英文字。

其他相關資訊

Microsoft 僅提供示範性的程式設計範例,不做任何明示或默示的保證。其中包括 (但不限於) 其適售性與適合某特定用途之默示擔保。本文假設您已相當熟悉示範所使用的程式設計語言,以及用於建立和偵錯程序的工具。Microsoft 技術支援工程師可以協助說明特定程序的功能,但不會修改這些範例以提供附加功能或建構程序來滿足您的特定需求。

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

  1. 啟動 Microsoft Excel。
  2. 按 ALT+F11 啟動 Visual Basic 編輯器。
  3. [插入] 功能表上,按一下 [模組]
  4. 在模組工作表中輸入下列程式碼。
    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))
    ' 如果值為無,則十進位 0 的位置。
    DecimalPlace = InStr(MyNumber, ".")
    ' 換算分然後將 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
          
    ' 將數字 100-999 轉換為文字 
    Function GetHundreds(ByVal MyNumber)
    Dim Result As String
    If Val(MyNumber) = 0 Then Exit Function
    MyNumber = Right("000" & MyNumber, 3)
    ' 換算百進位的。
    If Mid(MyNumber, 1, 1) <> "0" Then
    Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
    End If
    ' 換算十進位和一進位。
    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
          
    ' 將數字 10 到 99 轉換為文字。 
    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                                 ' 如果值介於 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
         
    ' 將數字 1 到 9 轉換為文字。 
    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 變更為「三十二元五角」:
=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. 輸入您要的數字或儲存格參照,然後按一下 [確定]



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

屬性

文章編號: 213360 - 上次校閱: 2013年12月6日 - 版次: 2.0
這篇文章中的資訊適用於:
  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
關鍵字:?
kbdtacode kbhowto kbprogramming KB213360
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com