Pretvarjanje števil v besede

Opomba: Najnovejšo vsebino pomoči v vašem jeziku vam želimo zagotoviti v najkrajšem možnem času. Ta stran je bila prevedena z avtomatizacijo in lahko vsebuje slovnične napake ali nepravilnosti. Naš namen je, da bi bila vsebina za vas uporabna. Ali nam lahko na dnu te strani sporočite, ali so bile informacije za vas uporabne? Tukaj je angleški članek za preprosto referenco.

Excel nima privzete funkcije, ki prikazuje številke kot angleških besed na delovnem listu, vendar to funkcijo lahko dodate tako, da prilepite to kodo SpellNumber funkcije v modulu VBA (Visual Basic for Applications). Ta funkcija vam omogoča, da pretvorite dolar in centov količine besede s formulo, in tako 22,50 bi več kot dvajset dva evrov in petdeset centov. To lahko zelo uporabna, če uporabljate Excel kot predlogo, če želite natisniti preverjanja.

Če želite pretvorijo številske vrednosti v besedilni obliki, ne da bi jih kot besedilo, uporabite funkcijo TEXT .

Opomba: Microsoft ponuja primere za programiranje le za ponazoritev, brez izrecnega ali implicitnega. To vključuje, vendar ni omejena na implicitnimi primernosti ali za posebne namene. V tem članku je predvideno, da ste seznanjeni z programskem jeziku VBA in z orodji, ki se uporabljajo za ustvarjanje in postopki za iskanje napak. Inženirji za podporo Microsoft lahko pomagajo pojasniti funkcionalnost posameznega postopka. Vendar pa ne bodo spreminjali primerov, da bi zagotovili dodatno funkcionalnost ali ustvarjate postopki, ki izpolnjujejo vaše zahteve.

Ustvarjanje funkcije SpellNumber za pretvorbo številk v besede

  1. Uporabite bližnjico na tipkovnici, Alt + F11 , da odprete Visual Basic Editor (VBE).

    Opomba: Urejevalnik za Visual Basic lahko odprete tudi tako, da na traku odprete zavihek »Razvijalec«.

  2. Kliknite zavihek Vstavljanje in nato Modul.

    V meniju Vstavljanje kliknite modul.
  3. Kopirajte te vrstice kode.

    Opomba: Znana kot Uporabniško določena funkcija (UDF), to kodo samodejen opravilo pretvarjanja številke v besedilo v celotnem delovnem zvezku.

    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. Vrstice kode prilepite v polje Modul1 (koda).

    Koda, prilepljen v v modulu »modul1« (koda) polje.
  5. Pritisnite Alt + Q če se želite vrniti v Excel. Funkcija SpellNumber je zdaj pripravljena za uporabo.

    Opomba: Ta funkcija deluje le za trenutni delovni zvezek. Če želite uporabiti to funkcijo v drugem delovnem zvezku, morate ponovite korake in kopirajte in prilepite kodo v ta delovni zvezek.

Na vrh strani

Uporaba funkcije SpellNumber v posameznih celicah

  1. Vnesite formulo = SpellNumber(A1), v celico, kjer želite prikazati napisanih številko, kjer je A1 celice, ki vsebujejo števila ga želite pretvoriti. Lahko tudi ročno vnesite želeno vrednost na primer = SpellNumber(22.50).

  2. Pritisnite Enter , da potrdite formulo.

Na vrh strani

Shranjevanje delovnega zvezka s funkcijo SpellNumber

Excel ne more shraniti delovnega zvezka s funkcije makrov v obliki zapisa standardno brez makrov delovnega zvezka (.xlsx). Če kliknete Datoteka > Shrani. Odpre pogovorno okno VB projekta . Kliknite brez.

V pogovornem oknu VB projekta kliknite ne.

Lahko shranite datoteko kot za Excelov delovni zvezek (.xlsm) , da datoteke v trenutni obliki zapisa.

  1. Kliknite Datoteka > Shrani kot.

  2. Kliknite Shrani kot vrsto spustni meni in izberite Excelov delovni zvezek.

  3. Kliknite Shrani.

Na vrh strani

Glejte tudi

Funkcija TEXT

Razširite poznavanje Officea
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije.

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×