Konverzia čísiel na slová

Poznámka: Radi by sme vám čo najrýchlejšie poskytovali najaktuálnejší obsah Pomocníka vo vašom vlastnom jazyku. Táto stránka bola preložená automaticky a môže obsahovať gramatické chyby alebo nepresnosti. Naším cieľom je, aby bol tento obsah pre vás užitočný. Dali by ste nám v dolnej časti tejto stránky vedieť, či boli pre vás tieto informácie užitočné? Tu nájdete anglický článok pre jednoduchú referenciu.

Program Excel neobsahuje predvolenú funkciu, ktorá sa čísla zobrazujú ako anglických slov v hárku, ale môžete pridať túto funkciu prilepením nasledujúci kód funkcia zoznameVyberte do module VBA (Visual Basic for Applications). Táto funkcia umožňuje skonvertovať dolár a centov objemy na slová pomocou vzorca, aby 22,50 by čítať ako 22 EUR a päťdesiat centov. To môže byť veľmi užitočné, ak používate program Excel ako šablónu na tlač kontroly.

Ak chcete konvertovať číselné hodnoty na formát textu bez zobrazenia ich ako slová, použite funkciu TEXT .

Poznámka: Spoločnosť Microsoft poskytuje príklady programovacieho iba, bez záruky vyjadrené alebo implicitné. To zahŕňa, ale nie je obmedzené na implicitných záruk obchodovateľnosti alebo vhodnosti pre konkrétny účel. Tento článok predpokladá, že ste sa oboznámili s VBA programovací jazyk a nástroje, ktoré sa používajú na vytváranie a ladenie procedúr. Pracovníci technickej podpory spoločnosti Microsoft môžu pomôcť vysvetliť funkčnosť konkrétny postup. Však nemôžu tieto príklady poskytovať pridanú funkčnosť alebo postaviť postupy pre splnenie vašich konkrétnych požiadaviek.

Vytvorenie funkcie SpellNumber na konverziu čísel na slová

  1. Použite klávesovú skratku Alt + F11 otvorte Visual Basic Editor (VBE).

    Poznámka: Visual Basic Editor môžete otvoriť aj zobrazením karty Vývojár na páse s nástrojmi.

  2. Kliknite na kartu Vložiť a vyberte položku Modul.

    V ponuke Vložiť kliknite na položku Modul.
  3. Skopírujte nasledujúce riadky kódu.

    Poznámka: Známe ako Používateľ definované funkcie (UDF), tento kód automatizuje úlohu Konverzia čísel do textu v celom hárku.

    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. Prilepte riadky kódu do okna Modul1 (Kód).

    Kód prilepený v poli Modul1 (kód).
  5. Stlačte kombináciu klávesov Alt + Q sa vrátite do programu Excel. Funkcia zoznameVyberte je pripravená na použitie.

    Poznámka: Táto funkcia funguje len pre aktuálny zošit. Táto funkcia sa používa v inom zošite, musíte zopakujte kroky skopírujte a prilepte kód v tomto zošite.

Na začiatok stránky

Použitie funkcie SpellNumber v jednotlivých bunkách

  1. Zadajte vzorec = zoznameVyberte (A1) do bunky, miesto, kde chcete zobraziť napísaných čísla, pričom A1 je bunku obsahujúcu číslo chcete konvertovať. Môžete tiež manuálne zadať hodnotu ako je napríklad = SpellNumber(22.50).

  2. Stlačením klávesu Enter potvrďte vzorec.

Na začiatok stránky

Uloženie zošita s funkciou SpellNumber

Excel nemôže uložiť zošit pomocou funkcie makier vo formáte štandardného bez makier zošita (.xlsx). Ak kliknete na položku súbor > Uložiť. Otvorí sa dialógové okno fotografií projektu. Kliknite na tlačidlo nie.

V dialógovom okne projektu v jazyku VB kliknite na položku Nie.

Súbor môžete uložiť ako Zošit programu Excel podporujúca makrá (.xlsm), ak chcete uložiť súbor v aktuálnom formáte.

  1. Kliknite na položky Súbor > Uložiť ako.

  2. Kliknite na položku Uložiť ako typ rozbaľovacej ponuky a vyberte položku Zošit programu Excel podporujúca makrá.

  3. Kliknite na tlačidlo Uložiť.

Na začiatok stránky

Pozrite tiež

TEXT (funkcia)

Rozšírte svoje zručnosti práce s balíkom Office
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×