2013-06-13 173 views

回答

4

沒有內置公式在Excel中,您必須添加一個VB腳本,並永久地與您的MS保存。 Excel的安裝爲插件。

  1. 按Alt + F11
  2. MENU:(工具條)插入模塊
  3. 複製並粘貼下面的代碼


Option Explicit 

Public Numbers As Variant, Tens As Variant 

Sub SetNums() 
    Numbers = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen") 
    Tens = Array("", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety") 
End Sub 

Function WordNum(MyNumber As Double) As String 
    Dim DecimalPosition As Integer, ValNo As Variant, StrNo As String 
    Dim NumStr As String, n As Integer, Temp1 As String, Temp2 As String 
    ' This macro was written by Chris Mead - www.MeadInKent.co.uk 
    If Abs(MyNumber) > 999999999 Then 
     WordNum = "Value too large" 
     Exit Function 
    End If 
    SetNums 
    ' String representation of amount (excl decimals) 
    NumStr = Right("000000000" & Trim(Str(Int(Abs(MyNumber)))), 9) 
    ValNo = Array(0, Val(Mid(NumStr, 1, 3)), Val(Mid(NumStr, 4, 3)), Val(Mid(NumStr, 7, 3))) 
    For n = 3 To 1 Step -1 'analyse the absolute number as 3 sets of 3 digits 
     StrNo = Format(ValNo(n), "000") 
     If ValNo(n) > 0 Then 
      Temp1 = GetTens(Val(Right(StrNo, 2))) 
      If Left(StrNo, 1) <> "0" Then 
       Temp2 = Numbers(Val(Left(StrNo, 1))) & " hundred" 
       If Temp1 <> "" Then Temp2 = Temp2 & " and " 
      Else 
       Temp2 = "" 
      End If 
      If n = 3 Then 
       If Temp2 = "" And ValNo(1) + ValNo(2) > 0 Then Temp2 = "and " 
       WordNum = Trim(Temp2 & Temp1) 
      End If 
      If n = 2 Then WordNum = Trim(Temp2 & Temp1 & " thousand " & WordNum) 
      If n = 1 Then WordNum = Trim(Temp2 & Temp1 & " million " & WordNum) 
     End If 
    Next n 
    NumStr = Trim(Str(Abs(MyNumber))) 
    ' Values after the decimal place 
    DecimalPosition = InStr(NumStr, ".") 
    Numbers(0) = "Zero" 
    If DecimalPosition > 0 And DecimalPosition < Len(NumStr) Then 
     Temp1 = " point" 
     For n = DecimalPosition + 1 To Len(NumStr) 
      Temp1 = Temp1 & " " & Numbers(Val(Mid(NumStr, n, 1))) 
     Next n 
     WordNum = WordNum & Temp1 
    End If 
    If Len(WordNum) = 0 Or Left(WordNum, 2) = " p" Then 
     WordNum = "Zero" & WordNum 
    End If 
End Function 

Function GetTens(TensNum As Integer) As String 
' Converts a number from 0 to 99 into text. 
    If TensNum <= 19 Then 
     GetTens = Numbers(TensNum) 
    Else 
     Dim MyNo As String 
     MyNo = Format(TensNum, "00") 
     GetTens = Tens(Val(Left(MyNo, 1))) & " " & Numbers(Val(Right(MyNo, 1))) 
    End If 
End Function 

在此之後,從文件菜單選擇Save Book,從下一菜單中選擇 「Excel 97-2003加載項(* .xla)

它將另存爲Excel加載項。直到女士辦公室安裝到該機器。

現在,在任何細胞類型=WordNum(<your numeric value or cell reference>)

,你會看到一個詞等同數值的任何打開Excel文件。

的這段代碼摘自:http://en.kioskea.net/forum/affich-267274-how-to-convert-number-into-text-in-excel

+1

榮譽不剝出'」這個宏寫由克里斯·米德 - www.MeadInKent.co.uk'行:O) –

+1

我剛纔共享片段。我不是此代碼的所有者。你可以在發佈的代碼中看到編輯 – DareDevil

+1

這是讚美而不是批評。 –

相關問題