Applies ToExcel pre Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Excel nemá predvolenú funkciu, ktorá zobrazuje čísla ako anglické slová v hárku, ale túto možnosť môžete pridať prilepením nasledujúceho kódu funkcie SpellNumber do modulu VBA (Visual Basic for Applications). Táto funkcia umožňuje konvertovať sumy v dolároch a centoch na slová pomocou vzorca, takže 22,50 by sa čítalo ako Twenty-Two dolárov a päťdesiat centov. Môže to byť veľmi užitočné, ak používate Excel ako šablónu na tlač kontrol.

Ak chcete konvertovať číselné hodnoty do textového formátu bez toho, aby sa zobrazovali ako slová, použite namiesto toho funkciu TEXT .

Poznámka: Spoločnosť Microsoft poskytuje príklady programovania len na ilustráciu bez záruky vyjadrenej alebo implicitnej. To zahŕňa, ale nie je obmedzená na implicitné záruky obchodovateľnosti alebo vhodnosti na konkrétny účel. V tomto článku sa predpokladá, že poznáte programovací jazyk VBA a nástroje, ktoré sa používajú na vytváranie a ladenie postupov. Technickí inžinieri spoločnosti Microsoft môžu pomôcť vysvetliť funkčnosť konkrétneho postupu. Tieto príklady však nebudú upravovať tak, aby poskytovali ďalšie funkcie alebo vytvárali postupy na splnenie vašich konkrétnych požiadaviek.

Vytvorenie funkcie SpellNumber na konverziu čísel na slová

  1. Na otvorenie programu Visual Basic Editor (VBE) použite klávesovú skratku Alt + F11.

    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: Tento kód, známy ako funkcia definovaná používateľom (UDF), automatizuje úlohu konverzie čísel na text v 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čením kombinácie klávesov Alt + Q sa vrátite do Excelu. Funkcia SpellNumber je teraz pripravená na použitie.

    Poznámka: Táto funkcia funguje len pre aktuálny zošit. Ak chcete túto funkciu použiť v inom zošite, zopakujte kroky na skopírovanie a prilepenie kódu v danom zošite.

Na začiatok stránky

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

  1. Do bunky, v ktorej chcete zobraziť písané číslo, zadajte vzorec =SpellNumber(A1), kde A1 je bunka obsahujúca číslo, ktoré chcete skonvertovať. Môžete tiež manuálne zadať hodnotu ako =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

Program Excel nemôže uložiť zošit s funkciami makier v štandardnom formáte zošita nepodporuného makra (.xlsx). Kliknutím na položku Súbor > Uložiť. sa otvorí dialógové okno projektu v jazyku VB. Kliknite na položku Nie.

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

Súbor môžete uložiť ako excelový Macro-Enabled zošit (.xlsm) a zachovať tak súbor v aktuálnom formáte.

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

  2. Kliknite na rozbaľovaciu ponuku Uložiť vo formáte a vyberte položku Excel Macro-Enabled Zošit.

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

Na začiatok stránky

Pozrite tiež

TEXT (funkcia)

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.