Note: The other languages of the website are Google-translated. Back to English

Jak převést čísla na slova v indických rupiích v aplikaci Excel?

V tomto článku představím, jak převést seznam čísel na slova v indických rupiích nebo anglickém dolaru v aplikaci Excel.

Převádějte čísla na slova v indických rupiích pomocí kódu VBA

Převod čísel na slova v anglickém dolaru s úžasnou funkcí


Převádějte čísla na slova v indických rupiích pomocí kódu VBA

Následující kód VBA vám pomůže převést čísla na slova v rupiích, postupujte takto:

1. Podržte ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující kód do okna modulu.

Kód VBA: Převádějte čísla na slova v rupiích

Public Function RupeeFormat(SNum As String)
'Updateby Extendoffice
Dim xDPInt As Integer
Dim xArrPlace As Variant
Dim xRStr_Paisas As String
Dim xNumStr As String
Dim xF As Integer
Dim xTemp As String
Dim xStrTemp As String
Dim xRStr As String
Dim xLp As Integer
xArrPlace = Array("", "", " Thousand ", " Lacs ", " Crores ", " Trillion ", "", "", "", "")
On Error Resume Next
If SNum = "" Then
  RupeeFormat = ""
  Exit Function
End If
xNumStr = Trim(str(SNum))
If xNumStr = "" Then
  RupeeFormat = ""
  Exit Function
End If

xRStr = ""
xLp = 0
If (xNumStr > 999999999.99) Then
    RupeeFormat = "Digit excced Maximum limit"
    Exit Function
End If
xDPInt = InStr(xNumStr, ".")
If xDPInt > 0 Then
    If (Len(xNumStr) - xDPInt) = 1 Then
       xRStr_Paisas = RupeeFormat_GetT(Left(Mid(xNumStr, xDPInt + 1) & "0", 2))
    ElseIf (Len(xNumStr) - xDPInt) > 1 Then
       xRStr_Paisas = RupeeFormat_GetT(Left(Mid(xNumStr, xDPInt + 1), 2))
    End If
        xNumStr = Trim(Left(xNumStr, xDPInt - 1))
    End If
    xF = 1
    Do While xNumStr <> ""
        If (xF >= 2) Then
            xTemp = Right(xNumStr, 2)
        Else
            If (Len(xNumStr) = 2) Then
                xTemp = Right(xNumStr, 2)
            ElseIf (Len(xNumStr) = 1) Then
                xTemp = Right(xNumStr, 1)
            Else
                xTemp = Right(xNumStr, 3)
            End If
        End If
        xStrTemp = ""
        If Val(xTemp) > 99 Then
            xStrTemp = RupeeFormat_GetH(Right(xTemp, 3), xLp)
            If Right(Trim(xStrTemp), 3) <> "Lac" Then
            xLp = xLp + 1
            End If
        ElseIf Val(xTemp) <= 99 And Val(xTemp) > 9 Then
            xStrTemp = RupeeFormat_GetT(Right(xTemp, 2))
        ElseIf Val(xTemp) < 10 Then
            xStrTemp = RupeeFormat_GetD(Right(xTemp, 2))
        End If
        If xStrTemp <> "" Then
            xRStr = xStrTemp & xArrPlace(xF) & xRStr
        End If
        If xF = 2 Then
            If Len(xNumStr) = 1 Then
                xNumStr = ""
            Else
                xNumStr = Left(xNumStr, Len(xNumStr) - 2)
            End If
       ElseIf xF = 3 Then
            If Len(xNumStr) >= 3 Then
                 xNumStr = Left(xNumStr, Len(xNumStr) - 2)
            Else
                xNumStr = ""
            End If
        ElseIf xF = 4 Then
          xNumStr = ""
    Else
        If Len(xNumStr) <= 2 Then
        xNumStr = ""
    Else
        xNumStr = Left(xNumStr, Len(xNumStr) - 3)
        End If
    End If
        xF = xF + 1
Loop
    If xRStr = "" Then
       xRStr = "No Rupees"
    Else
       xRStr = " Rupees " & xRStr
    End If
    If xRStr_Paisas <> "" Then
       xRStr_Paisas = " and " & xRStr_Paisas & " Paisas"
    End If
    RupeeFormat = xRStr & xRStr_Paisas & " Only"
    End Function
Function RupeeFormat_GetH(xStrH As String, xLp As Integer)
Dim xRStr As String
If Val(xStrH) < 1 Then
    RupeeFormat_GetH = ""
    Exit Function
Else
   xStrH = Right("000" & xStrH, 3)
   If Mid(xStrH, 1, 1) <> "0" Then
        If (xLp > 0) Then
         xRStr = RupeeFormat_GetD(Mid(xStrH, 1, 1)) & " Lac "
        Else
         xRStr = RupeeFormat_GetD(Mid(xStrH, 1, 1)) & " Hundred "
        End If
    End If
    If Mid(xStrH, 2, 1) <> "0" Then
        xRStr = xRStr & RupeeFormat_GetT(Mid(xStrH, 2))
    Else
        xRStr = xRStr & RupeeFormat_GetD(Mid(xStrH, 3))
    End If
End If
    RupeeFormat_GetH = xRStr
End Function
Function RupeeFormat_GetT(xTStr As String)
    Dim xTArr1 As Variant
    Dim xTArr2 As Variant
    Dim xRStr As String
    xTArr1 = Array("Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
    xTArr2 = Array("", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
    Result = ""
    If Val(Left(xTStr, 1)) = 1 Then
        xRStr = xTArr1(Val(Mid(xTStr, 2, 1)))
    Else
        If Val(Left(xTStr, 1)) > 0 Then
            xRStr = xTArr2(Val(Left(xTStr, 1)) - 1)
        End If
        xRStr = xRStr & RupeeFormat_GetD(Right(xTStr, 1))
    End If
      RupeeFormat_GetT = xRStr
End Function
Function RupeeFormat_GetD(xDStr As String)
Dim xArr_1() As Variant
    xArr_1 = Array(" One", " Two", " Three", " Four", " Five", " Six", " Seven", " Eight", " Nine", "")
    If Val(xDStr) > 0 Then
        RupeeFormat_GetD = xArr_1(Val(xDStr) - 1)
    Else
        RupeeFormat_GetD = ""
    End If
End Function 

3. Po vložení kódu uložte a zavřete okno s kódem, vraťte se do listu a zadejte tento vzorec: = RupeeFormat (A2) do prázdné buňky a poté přetažením úchytky výplně dolů použijte tento vzorec na jiné buňky, všechna čísla byla vysvětlena v rupiích, viz screenshot:


Převod čísel na slova v anglickém dolaru s úžasnou funkcí

Pokud chcete převést čísla na slova v anglickém dolaru, Kutools pro ExcelJe Čísla na slova Tato funkce vám pomůže rychle a snadno vyřešit tuto práci.

Tip:Použít toto Počet slov funkce, za prvé, měli byste si stáhnout Kutools pro Excela poté tuto funkci rychle a snadno aplikujte.

Po instalaci Kutools pro Excel, udělejte prosím toto:

1. Vyberte seznam čísel, která chcete převést, a klikněte na Kutools > Obsah > Čísla na slova, viz screenshoty:

2. V Čísla na slova měny dialogové okno vyberte Angličtina možnost z nabídky Jazyky části a potom klikněte na Ok tlačítko, čísla ve výběru byla převedena na anglická slova měny, viz screenshot:

Klikněte a stáhněte si Kutools pro Excel a bezplatnou zkušební verzi hned teď!

 


  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce a uchovávání údajů; Rozdělit obsah buněk; Zkombinujte duplicitní řádky a součet / průměr... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Oblíbené a rychlé vkládání vzorců„Rozsahy, grafy a obrázky; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Seskupování kontingenčních tabulek podle číslo týdne, den v týdnu a další ... Zobrazit odemčené, zamčené buňky různými barvami; Zvýrazněte buňky, které mají vzorec / název...
karta kte 201905
  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
officetab dno

 

Komentáře (22)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Excel se zhroutí, když referenční buňka nemá ventil!
Tento komentář byl moderátorem webu minimalizován
Ahoj, Uživateli,
Děkujeme za váš komentář, kód v tomto článku byl aktualizován, zkuste to prosím znovu, děkujeme!
Tento komentář byl moderátorem webu minimalizován
Vážený pane,

Dobrý den,

Testoval jsem výše uvedený vzorec, že ​​nefunguje v pomlčkách mínus hodnoty jako -100 -10,000 100 nebo (10,000) (XNUMX XNUMX)

Pane, používám níže uvedený kód za poslední 1 rok a dnes jsem objevil stejnou chybu.

Když napíšu mínus -10,000 10,000 nebo (XNUMX XNUMX), zobrazí se „Pouze sto deset tisíc“
Když napíšu kladných 10,000 XNUMX, funguje to skvěle "Jen deset tisíc"

Níže uvedený příklad:

(10,000.99 99) Pouze sto deset tisíc & 100/XNUMX rijálů
10,000.99 99 Pouze deset tisíc & 100/XNUMX rijálů
(10,000,000.99 99 100) Pouze sto deset milionů & XNUMX/XNUMX rijálů
10,000,000.99 99 100 Pouze deset milionů & XNUMX/XNUMX rijálů
(10,000,000,000.99 99 100 XNUMX) Pouze sto deset miliard & XNUMX/XNUMX rijálů
10,000,000,000.99 99 100 XNUMX Pouze deset miliard & XNUMX/XNUMX rijálů
(10,000,000,000,000.90 90 100 XNUMX XNUMX) Pouze sto deset bilionů a XNUMX/XNUMX rijálů
10,000,000,000,000.90 90 100 XNUMX XNUMX Pouze deset bilionů a XNUMX/XNUMX rijálů

Vzorec = spellbilling

MŮJ KÓD VBA:

'Hlavní funkce
Funkce SpellBilling (ByVal MyNumber)
Dim Riyals, Halalas, Temp
Tlumené desetinné místo, hrabě
ReDim Place(9) As String
Místo(2) = "Tisíc"
Místo(3) = "milion"
Místo(4) = "miliarda"
Místo(5) = "bilion"
' Řetězcová reprezentace částky.
MojeČíslo = Oříznout(Str(MojeČíslo))
' Pozice desetinného místa 0, pokud žádné.
Desetinné místo = InStr(MojeČíslo, "."")
' Převeďte halalas a nastavte Moje číslo na částku Riyal.
Pokud Desetinné místo > 0 Pak
Halalas = GetTens(Left(Mid(MyNumber, DesetinPlace + 1) & _
"00", 2))
MojeČíslo = Oříznout(Left(MojeČíslo, DesetinnéMísto - 1))
End If
Počet = 1
Dělat, zatímco MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Riyals = Temp & Place (Count) & Riyals
Pokud Len(MyNumber) > 3 Pak
MojeČíslo = Left(MojeČíslo, Len(MojeČíslo) - 3)
Jiný
MojeČíslo = ""
End If
Počet = Počet + 1
Smyčka
Vyberte Case Riyals
Případ ""
Riyals = "No Riyal"
Případ "Jedna"
Riyals = "Pouze jeden Riyal"
Case Else
Riyals = "Pouze" & Riyals
Riyals = Riyals & ""
Konec Vybrat
Vyberte Case Halalas
Případ ""
Halalas = "& 00/00 Riyals"
Případ "Jedna"
Halalas = "& 01/100 Riyals"
Případ "dva"
Halalas = "& 02/100 Riyals"
Případ "Tři"
Halalas = "& 03/100 Riyals"
Případ "čtyři"
Halalas = "& 04/100 Riyals"
Případ "pět"
Halalas = "& 05/100 Riyals"
Případ "Šest"
Halalas = "& 06/100 Riyals"
Případ "Sedm"
Halalas = "& 07/100 Riyals"
Případ "Osm"
Halalas = "& 08/100 Riyals"
Případ "devět"
Halalas = "& 09/100 Riyals"
Případ "Deset"
Halalas = "& 10/100 Riyals"
Případ "Eleven"
Halalas = "& 11/100 Riyals"
Případ "Dvanáct"
Halalas = "& 12/100 Riyals"
Případ "Třináct"
Halalas = "& 13/100 Riyals"
Případ "čtrnáct"
Halalas = "& 14/100 Riyals"
Případ "patnáct"
Halalas = "& 15/100 Riyals"
Případ "šestnáct"
Halalas = "& 16/100 Riyals"
Případ "Sedmnáct"
Halalas = "& 17/100 Riyals"
Případ "Osmnáct"
Halalas = "& 18/100 Riyals"
Případ "devatenáct"
Halalas = "& 19/100 Riyals"
Případ "dvacet"
Halalas = "& 20/100 Riyals"
Případ "Twenty One"
Halalas = "& 21/100 Riyals"
Případ "dvacet dva"
Halalas = "& 22/100 Riyals"
Případ "Twenty Three"
Halalas = "& 23/100 Riyals"
Případ "dvacet čtyři"
Halalas = "& 24/100 Riyals"
Případ "Twenty Five"
Halalas = "& 25/100 Riyals"
Případ "Twenty Six"
Halalas = "& 26/100 Riyals"
Případ "Twenty Seven"
Halalas = "& 27/100 Riyals"
Případ "Twenty Eight"
Halalas = "& 28/100 Riyals"
Případ "Twenty Nine"
Halalas = "& 29/100 Riyals"
Případ "Třicet"
Halalas = "& 30/100 Riyals"
Případ "Třicet jedna"
Halalas = "& 31/100 Riyals"
Případ "Třicet dva"
Halalas = "& 32/100 Riyals"
Případ "Třicet tři"
Halalas = "& 33/100 Riyals"
Případ "Třicet čtyři"
Halalas = "& 34/100 Riyals"
Případ "Thirty Five"
Halalas = "& 35/100 Riyals"
Případ "Thirty Six"
Halalas = "& 36/100 Riyals"
Případ "Třicet sedm"
Halalas = "& 37/100 Riyals"
Případ "Třicet osm"
Halalas = "& 38/100 Riyals"
Případ "Třicet devět"
Halalas = "& 39/100 Riyals"
Případ "čtyřicet"
Halalas = "& 40/100 Riyals"
Případ "čtyřicet jedna"
Halalas = "& 41/100 Riyals"
Případ "čtyřicet dva"
Halalas = "& 42/100 Riyals"
Případ "Čtyřicet tři"
Halalas = "& 43/100 Riyals"
Případ "Čtyřicet čtyři"
Halalas = "& 44/100 Riyals"
Případ "Forty Five"
Halalas = "& 45/100 Riyals"
Případ "Forty Six"
Halalas = "& 46/100 Riyals"
Případ "čtyřicet sedm"
Halalas = "& 47/100 Riyals"
Případ "Forty Eight"
Halalas = "& 48/100 Riyals"
Případ "Forty Nine"
Halalas = "& 49/100 Riyals"
Případ "padesát"
Halalas = "& 50/100 Riyals"
Případ "Fifty One"
Halalas = "& 51/100 Riyals"
Případ "padesát dva"
Halalas = "& 52/100 Riyals"
Případ "padesát tři"
Halalas = "& 53/100 Riyals"
Případ "padesát čtyři"
Halalas = "& 54/100 Riyals"
Případ "Fifty Five"
Halalas = "& 55/100 Riyals"
Případ "Fifty Six"
Halalas = "& 56/100 Riyals"
Případ "Fifty Seven"
Halalas = "& 57/100 Riyals"
Případ "Fifty Eight"
Halalas = "& 58/100 Riyals"
Případ "Fifty Nine"
Halalas = "& 59/100 Riyals"
Případ "Sixty"
Halalas = "& 60/100 Riyals"
Případ "Sixty One"
Halalas = "& 61/100 Riyals"
Případ "Sixty Two"
Halalas = "& 62/100 Riyals"
Případ "Sixty Three"
Halalas = "& 63/100 Riyals"
Případ "Sixty Four"
Halalas = "& 64/100 Riyals"
Případ "Sixty Five"
Halalas = "& 65/100 Riyals"
Případ "Sixty Six"
Halalas = "& 66/100 Riyals"
Případ "Sixty Seven"
Halalas = "& 67/100 Riyals"
Případ "Sixty Eight"
Halalas = "& 68/100 Riyals"
Případ "Sixty Nine"
Halalas = "& 69/100 Riyals"
Případ "Sedmdesát"
Halalas = "& 70/100 Riyals"
Případ "Sedmdesát jedna"
Halalas = "& 71/100 Riyals"
Případ "Sedmdesát dva"
Halalas = "& 72/100 Riyals"
Případ "Sedmdesát tři"
Halalas = "& 73/100 Riyals"
Případ "Sedmdesát čtyři"
Halalas = "& 74/100 Riyals"
Případ "Sedmdesát pět"
Halalas = "& 75/100 Riyals"
Případ "Sedmdesát šest"
Halalas = "& 76/100 Riyals"
Případ "Sedmdesát sedm"
Halalas = "& 77/100 Riyals"
Případ "Sedmdesát osm"
Halalas = "& 78/100 Riyals"
Případ "Sedmdesát devět"
Halalas = "& 79/100 Riyals"
Případ "osmdesát"
Halalas = "& 80/100 Riyals"
Případ "Osmdesát jedna"
Halalas = "& 81/100 Riyals"
Případ "Osmdesát dva"
Halalas = "& 82/100 Riyals"
Případ "Osmdesát tři"
Halalas = "& 83/100 Riyals"
Případ "Osmdesát čtyři"
Halalas = "& 84/100 Riyals"
Případ "Osmdesát pět"
Halalas = "& 85/100 Riyals"
Případ "Osmdesát šest"
Halalas = "& 86/100 Riyals"
Případ "Osmdesát sedm"
Halalas = "& 87/100 Riyals"
Případ "Eighty Eight"
Halalas = "& 88/100 Riyals"
Případ "Osmdesát devět"
Halalas = "& 89/100 Riyals"
Případ "devadesát"
Halalas = "& 90/100 Riyals"
Případ "devadesát jedna"
Halalas = "& 91/100 Riyals"
Případ "devadesát dva"
Halalas = "& 92/100 Riyals"
Případ "devadesát tři"
Halalas = "& 93/100 Riyals"
Případ "devadesát čtyři"
Halalas = "& 94/100 Riyals"
Případ "devadesát pět"
Halalas = "& 95/100 Riyals"
Případ "Ninety Six"
Halalas = "& 96/100 Riyals"
Případ "Ninety Seven"
Halalas = "& 97/100 Riyals"
Případ "Ninety Eight"
Halalas = "& 98/100 Riyals"
Případ "Ninety Nine"
Halalas = "& 99/100 Riyals"


Case Else
Halalas = " & " & Halalas & " Halalas"
Konec Vybrat
SpellBilling = rijálové a halalas
End Function


' Převede číslo od 100 do 999 na text
Funkce GetHundreds (ByVal MyNumber)
Ztlumený výsledek jako řetězec
Pokud Val(MojeČíslo) = 0, pak funkci ukončete
MojeČíslo = Správně("000" & MojeČíslo, 3)
Převeďte stovky míst.
If Mid(MyNumber, 1, 1) <> "0" Then
Výsledek = GetDigit(Mid(MyNumber, 1, 1)) & "Hundred"
End If
Převeďte desítky a jedničky.
If Mid(MyNumber, 2, 1) <> "0" Then
Výsledek = Výsledek & GetTens(Mid(MyNumber, 2))
Jiný
Výsledek = Výsledek & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = výsledek
End Function

' Převede číslo od 10 do 99 na text.
Funkce GetTens (TensText)
Ztlumený výsledek jako řetězec
Result = "" ' Vynulujte dočasnou hodnotu funkce.
If Val(Left(TensText, 1)) = 1 Then ' If value mezi 10-19...
Vyberte případ Val (TensText)
Případ 10: Výsledek = "Deset"
Případ 11: Výsledek = "jedenáct"
Případ 12: Výsledek = "Dvanáct"
Případ 13: Výsledek = "Třináct"
Případ 14: Výsledek = "Čtrnáct"
Případ 15: Výsledek = "patnáct"
Případ 16: Výsledek = "Šestnáct"
Případ 17: Výsledek = "Sedmnáct"
Případ 18: Výsledek = "Osmnáct"
Případ 19: Výsledek = "Devatenáct"
Case Else
Konec Vybrat
Jinak ' Pokud je hodnota mezi 20-99...
Vyberte velikost písmen Val(vlevo(desítkyText, 1))
Případ 2: Výsledek = "dvacet"
Případ 3: Výsledek = "Třicet"
Případ 4: Výsledek = "čtyřicet"
Případ 5: Výsledek = "padesát"
Případ 6: Výsledek = "šedesát"
Případ 7: Výsledek = "Sedmdesát"
Případ 8: Výsledek = "osmdesát"
Případ 9: Výsledek = "devadesát"
Case Else
Konec Vybrat
Výsledek = Výsledek & GetDigit _
(Right(TensText, 1)) ' Obnovit své místo.
End If
GetTens = výsledek
End Function

' Převede číslo od 1 do 9 na text.
Funkce GetDigit(Digit)
Vyberte případ Val (číslice)
Případ 1: GetDigit = "One"
Případ 2: GetDigit = "Dva"
Případ 3: GetDigit = "Tři"
Případ 4: GetDigit = "Čtyři"
Případ 5: GetDigit = "Pět"
Případ 6: GetDigit = "Šest"
Případ 7: GetDigit = "Sedm"
Případ 8: GetDigit = "Osm"
Případ 9: GetDigit = "Devět"
Případ jiný: GetDigit = ""
Konec Vybrat
End Function
Tento komentář byl moderátorem webu minimalizován
Není co říct! Extrémně super
Tento komentář byl moderátorem webu minimalizován
Vážený pane,

Dobrý den,
Testoval jsem váš kód VBA, ale bohužel nefunguje dobře na záporných / mínusových hodnotách, jako je -100 -10,000 100 / (10,000) (XNUMX XNUMX).

Pane, používám níže uvedený kód za poslední 1 rok a dnes jsem objevil stejnou chybu, která se nachází i ve vašem kódu VBA.

Když napíšu mínus -10,000 XNUMX, zobrazí se to na "Jen sto deset tisíc"
Když napíšu kladných 10,000 XNUMX, zobrazí se „Pouze deset tisíc“ funguje dobře

Níže uvedený příklad:

(10,000.99 99) Pouze sto deset tisíc & 100/XNUMX rijálů
10,000.99 99 Pouze deset tisíc & 100/XNUMX rijálů
(10,000,000.99 99 100) Pouze sto deset milionů & XNUMX/XNUMX rijálů
10,000,000.99 99 100 Pouze deset milionů & XNUMX/XNUMX rijálů
(10,000,000,000.99 99 100 XNUMX) Pouze sto deset miliard & XNUMX/XNUMX rijálů
10,000,000,000.99 99 100 XNUMX Pouze deset miliard & XNUMX/XNUMX rijálů
(10,000,000,000,000.90 90 100 XNUMX XNUMX) Pouze sto deset bilionů a XNUMX/XNUMX rijálů
10,000,000,000,000.90 90 100 XNUMX XNUMX Pouze deset bilionů a XNUMX/XNUMX rijálů

Vzorec = spellbilling

MŮJ KÓD VBA:

'Hlavní funkce
Funkce SpellBilling (ByVal MyNumber)
Dim Riyals, Halalas, Temp
Tlumené desetinné místo, hrabě
ReDim Place(9) As String
Místo(2) = "Tisíc"
Místo(3) = "milion"
Místo(4) = "miliarda"
Místo(5) = "bilion"
' Řetězcová reprezentace částky.
MojeČíslo = Oříznout(Str(MojeČíslo))
' Pozice desetinného místa 0, pokud žádné.
Desetinné místo = InStr(MojeČíslo, "."")
' Převeďte halalas a nastavte Moje číslo na částku Riyal.
Pokud Desetinné místo > 0 Pak
Halalas = GetTens(Left(Mid(MyNumber, DesetinPlace + 1) & _
"00", 2))
MojeČíslo = Oříznout(Left(MojeČíslo, DesetinnéMísto - 1))
End If
Počet = 1
Dělat, zatímco MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Riyals = Temp & Place (Count) & Riyals
Pokud Len(MyNumber) > 3 Pak
MojeČíslo = Left(MojeČíslo, Len(MojeČíslo) - 3)
Jiný
MojeČíslo = ""
End If
Počet = Počet + 1
Smyčka
Vyberte Case Riyals
Případ ""
Riyals = "No Riyal"
Případ "Jedna"
Riyals = "Pouze jeden Riyal"
Case Else
Riyals = "Pouze" & Riyals
Riyals = Riyals & ""
Konec Vybrat
Vyberte Case Halalas
Případ ""
Halalas = "& 00/00 Riyals"
Případ "Jedna"
Halalas = "& 01/100 Riyals"
Případ "dva"
Halalas = "& 02/100 Riyals"
Případ "Tři"
Halalas = "& 03/100 Riyals"
Případ "čtyři"
Halalas = "& 04/100 Riyals"
Případ "pět"
Halalas = "& 05/100 Riyals"
Případ "Šest"
Halalas = "& 06/100 Riyals"
Případ "Sedm"
Halalas = "& 07/100 Riyals"
Případ "Osm"
Halalas = "& 08/100 Riyals"
Případ "devět"
Halalas = "& 09/100 Riyals"
Případ "Deset"
Halalas = "& 10/100 Riyals"
Případ "Eleven"
Halalas = "& 11/100 Riyals"
Případ "Dvanáct"
Halalas = "& 12/100 Riyals"
Případ "Třináct"
Halalas = "& 13/100 Riyals"
Případ "čtrnáct"
Halalas = "& 14/100 Riyals"
Případ "patnáct"
Halalas = "& 15/100 Riyals"
Případ "šestnáct"
Halalas = "& 16/100 Riyals"
Případ "Sedmnáct"
Halalas = "& 17/100 Riyals"
Případ "Osmnáct"
Halalas = "& 18/100 Riyals"
Případ "devatenáct"
Halalas = "& 19/100 Riyals"
Případ "dvacet"
Halalas = "& 20/100 Riyals"
Případ "Twenty One"
Halalas = "& 21/100 Riyals"
Případ "dvacet dva"
Halalas = "& 22/100 Riyals"
Případ "Twenty Three"
Halalas = "& 23/100 Riyals"
Případ "dvacet čtyři"
Halalas = "& 24/100 Riyals"
Případ "Twenty Five"
Halalas = "& 25/100 Riyals"
Případ "Twenty Six"
Halalas = "& 26/100 Riyals"
Případ "Twenty Seven"
Halalas = "& 27/100 Riyals"
Případ "Twenty Eight"
Halalas = "& 28/100 Riyals"
Případ "Twenty Nine"
Halalas = "& 29/100 Riyals"
Případ "Třicet"
Halalas = "& 30/100 Riyals"
Případ "Třicet jedna"
Halalas = "& 31/100 Riyals"
Případ "Třicet dva"
Halalas = "& 32/100 Riyals"
Případ "Třicet tři"
Halalas = "& 33/100 Riyals"
Případ "Třicet čtyři"
Halalas = "& 34/100 Riyals"
Případ "Thirty Five"
Halalas = "& 35/100 Riyals"
Případ "Thirty Six"
Halalas = "& 36/100 Riyals"
Případ "Třicet sedm"
Halalas = "& 37/100 Riyals"
Případ "Třicet osm"
Halalas = "& 38/100 Riyals"
Případ "Třicet devět"
Halalas = "& 39/100 Riyals"
Případ "čtyřicet"
Halalas = "& 40/100 Riyals"
Případ "čtyřicet jedna"
Halalas = "& 41/100 Riyals"
Případ "čtyřicet dva"
Halalas = "& 42/100 Riyals"
Případ "Čtyřicet tři"
Halalas = "& 43/100 Riyals"
Případ "Čtyřicet čtyři"
Halalas = "& 44/100 Riyals"
Případ "Forty Five"
Halalas = "& 45/100 Riyals"
Případ "Forty Six"
Halalas = "& 46/100 Riyals"
Případ "čtyřicet sedm"
Halalas = "& 47/100 Riyals"
Případ "Forty Eight"
Halalas = "& 48/100 Riyals"
Případ "Forty Nine"
Halalas = "& 49/100 Riyals"
Případ "padesát"
Halalas = "& 50/100 Riyals"
Případ "Fifty One"
Halalas = "& 51/100 Riyals"
Případ "padesát dva"
Halalas = "& 52/100 Riyals"
Případ "padesát tři"
Halalas = "& 53/100 Riyals"
Případ "padesát čtyři"
Halalas = "& 54/100 Riyals"
Případ "Fifty Five"
Halalas = "& 55/100 Riyals"
Případ "Fifty Six"
Halalas = "& 56/100 Riyals"
Případ "Fifty Seven"
Halalas = "& 57/100 Riyals"
Případ "Fifty Eight"
Halalas = "& 58/100 Riyals"
Případ "Fifty Nine"
Halalas = "& 59/100 Riyals"
Případ "Sixty"
Halalas = "& 60/100 Riyals"
Případ "Sixty One"
Halalas = "& 61/100 Riyals"
Případ "Sixty Two"
Halalas = "& 62/100 Riyals"
Případ "Sixty Three"
Halalas = "& 63/100 Riyals"
Případ "Sixty Four"
Halalas = "& 64/100 Riyals"
Případ "Sixty Five"
Halalas = "& 65/100 Riyals"
Případ "Sixty Six"
Halalas = "& 66/100 Riyals"
Případ "Sixty Seven"
Halalas = "& 67/100 Riyals"
Případ "Sixty Eight"
Halalas = "& 68/100 Riyals"
Případ "Sixty Nine"
Halalas = "& 69/100 Riyals"
Případ "Sedmdesát"
Halalas = "& 70/100 Riyals"
Případ "Sedmdesát jedna"
Halalas = "& 71/100 Riyals"
Případ "Sedmdesát dva"
Halalas = "& 72/100 Riyals"
Případ "Sedmdesát tři"
Halalas = "& 73/100 Riyals"
Případ "Sedmdesát čtyři"
Halalas = "& 74/100 Riyals"
Případ "Sedmdesát pět"
Halalas = "& 75/100 Riyals"
Případ "Sedmdesát šest"
Halalas = "& 76/100 Riyals"
Případ "Sedmdesát sedm"
Halalas = "& 77/100 Riyals"
Případ "Sedmdesát osm"
Halalas = "& 78/100 Riyals"
Případ "Sedmdesát devět"
Halalas = "& 79/100 Riyals"
Případ "osmdesát"
Halalas = "& 80/100 Riyals"
Případ "Osmdesát jedna"
Halalas = "& 81/100 Riyals"
Případ "Osmdesát dva"
Halalas = "& 82/100 Riyals"
Případ "Osmdesát tři"
Halalas = "& 83/100 Riyals"
Případ "Osmdesát čtyři"
Halalas = "& 84/100 Riyals"
Případ "Osmdesát pět"
Halalas = "& 85/100 Riyals"
Případ "Osmdesát šest"
Halalas = "& 86/100 Riyals"
Případ "Osmdesát sedm"
Halalas = "& 87/100 Riyals"
Případ "Eighty Eight"
Halalas = "& 88/100 Riyals"
Případ "Osmdesát devět"
Halalas = "& 89/100 Riyals"
Případ "devadesát"
Halalas = "& 90/100 Riyals"
Případ "devadesát jedna"
Halalas = "& 91/100 Riyals"
Případ "devadesát dva"
Halalas = "& 92/100 Riyals"
Případ "devadesát tři"
Halalas = "& 93/100 Riyals"
Případ "devadesát čtyři"
Halalas = "& 94/100 Riyals"
Případ "devadesát pět"
Halalas = "& 95/100 Riyals"
Případ "Ninety Six"
Halalas = "& 96/100 Riyals"
Případ "Ninety Seven"
Halalas = "& 97/100 Riyals"
Případ "Ninety Eight"
Halalas = "& 98/100 Riyals"
Případ "Ninety Nine"
Halalas = "& 99/100 Riyals"


Case Else
Halalas = " & " & Halalas & " Halalas"
Konec Vybrat
SpellBilling = rijálové a halalas
End Function


' Převede číslo od 100 do 999 na text
Funkce GetHundreds (ByVal MyNumber)
Ztlumený výsledek jako řetězec
Pokud Val(MojeČíslo) = 0, pak funkci ukončete
MojeČíslo = Správně("000" & MojeČíslo, 3)
Převeďte stovky míst.
If Mid(MyNumber, 1, 1) <> "0" Then
Výsledek = GetDigit(Mid(MyNumber, 1, 1)) & "Hundred"
End If
Převeďte desítky a jedničky.
If Mid(MyNumber, 2, 1) <> "0" Then
Výsledek = Výsledek & GetTens(Mid(MyNumber, 2))
Jiný
Výsledek = Výsledek & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = výsledek
End Function

' Převede číslo od 10 do 99 na text.
Funkce GetTens (TensText)
Ztlumený výsledek jako řetězec
Result = "" ' Vynulujte dočasnou hodnotu funkce.
If Val(Left(TensText, 1)) = 1 Then ' If value mezi 10-19...
Vyberte případ Val (TensText)
Případ 10: Výsledek = "Deset"
Případ 11: Výsledek = "jedenáct"
Případ 12: Výsledek = "Dvanáct"
Případ 13: Výsledek = "Třináct"
Případ 14: Výsledek = "Čtrnáct"
Případ 15: Výsledek = "patnáct"
Případ 16: Výsledek = "Šestnáct"
Případ 17: Výsledek = "Sedmnáct"
Případ 18: Výsledek = "Osmnáct"
Případ 19: Výsledek = "Devatenáct"
Case Else
Konec Vybrat
Jinak ' Pokud je hodnota mezi 20-99...
Vyberte velikost písmen Val(vlevo(desítkyText, 1))
Případ 2: Výsledek = "dvacet"
Případ 3: Výsledek = "Třicet"
Případ 4: Výsledek = "čtyřicet"
Případ 5: Výsledek = "padesát"
Případ 6: Výsledek = "šedesát"
Případ 7: Výsledek = "Sedmdesát"
Případ 8: Výsledek = "osmdesát"
Případ 9: Výsledek = "devadesát"
Case Else
Konec Vybrat
Výsledek = Výsledek & GetDigit _
(Right(TensText, 1)) ' Obnovit své místo.
End If
GetTens = výsledek
End Function

' Převede číslo od 1 do 9 na text.
Funkce GetDigit(Digit)
Vyberte případ Val (číslice)
Případ 1: GetDigit = "One"
Případ 2: GetDigit = "Dva"
Případ 3: GetDigit = "Tři"
Případ 4: GetDigit = "Čtyři"
Případ 5: GetDigit = "Pět"
Případ 6: GetDigit = "Šest"
Případ 7: GetDigit = "Sedm"
Případ 8: GetDigit = "Osm"
Případ 9: GetDigit = "Devět"
Případ jiný: GetDigit = ""
Konec Vybrat
End Function
Tento komentář byl moderátorem webu minimalizován
Potřebuji použít celý sešit Excel. Jak použít toto kódování na všechny excelové sešity.
Tento komentář byl moderátorem webu minimalizován
Rupees Čtrnáct tisíc osm set, sedmdesát pět Pouze poslední částka by měla obsahovat slovo a příklad
Jen čtrnáct tisíc osm set sedmdesát pět rupií
Tento komentář byl moderátorem webu minimalizován
nemůže přečíst více než 10 milionů.
Tento komentář byl moderátorem webu minimalizován
Jeden Lac Šedesát devět tisíc osmdesát jedna a čtyřicet dva Paise – není správně převedeno. Po zaokrouhlení také není převedeno výše uvedené číslo.
Tento komentář byl moderátorem webu minimalizován
DĚKUJI ZA KÓD...
Tento komentář byl moderátorem webu minimalizován
Děkuji za kódování. Přihlásil jsem se a funguje. Platí to ale pouze pro tento konkrétní sešit. Potřebuji použít celý sešit Excel. Jak použít toto kódování na všechny excelové sešity.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, SivaG
Ano, tento kód je uživatelsky definovaná funkce, měli byste vzorec použít na soubory jeden po druhém, pokud potřebujete kód pro použití ve více sešitech, použije se na všechna čísla, takže všechna čísla se změní. A kód nemůže podporovat vrácení zpět, existují určitá bezpečnostní rizika. Nedoporučuje se to dělat. Děkuji!
Tento komentář byl moderátorem webu minimalizován
Jak lze odstranit slovo „rupie“? Normálně mají kontrolní listy již slovo "Rupie".
Tento komentář byl moderátorem webu minimalizován
Ahoj Sakariya
Chcete-li vyřešit svůj problém, použijte níže uvedený kód:
Public Function RupeeFormat(SNum As String)
'Updateby Extendoffice
Dim xDPInt As Integer
Dim xArrPlace As Variant
Dim xRStr_Paisas As String
Dim xNumStr As String
Dim xF As Integer
Dim xTemp As String
Dim xStrTemp As String
Dim xRStr As String
Dim xLp As Integer
xArrPlace = Array("", "", " Thousand ", " Lacs ", " Crores ", " Trillion ", "", "", "", "")
On Error Resume Next
If SNum = "" Then
  RupeeFormat = ""
  Exit Function
End If
xNumStr = Trim(Str(SNum))
If xNumStr = "" Then
  RupeeFormat = ""
  Exit Function
End If

xRStr = ""
xLp = 0
If (xNumStr > 999999999.99) Then
    RupeeFormat = "Digit excced Maximum limit"
    Exit Function
End If
xDPInt = InStr(xNumStr, ".")
If xDPInt > 0 Then
    If (Len(xNumStr) - xDPInt) = 1 Then
       xRStr_Paisas = RupeeFormat_GetT(Left(Mid(xNumStr, xDPInt + 1) & "0", 2))
    ElseIf (Len(xNumStr) - xDPInt) > 1 Then
       xRStr_Paisas = RupeeFormat_GetT(Left(Mid(xNumStr, xDPInt + 1), 2))
    End If
        xNumStr = Trim(Left(xNumStr, xDPInt - 1))
    End If
    xF = 1
    Do While xNumStr <> ""
        If (xF >= 2) Then
            xTemp = Right(xNumStr, 2)
        Else
            If (Len(xNumStr) = 2) Then
                xTemp = Right(xNumStr, 2)
            ElseIf (Len(xNumStr) = 1) Then
                xTemp = Right(xNumStr, 1)
            Else
                xTemp = Right(xNumStr, 3)
            End If
        End If
        xStrTemp = ""
        If Val(xTemp) > 99 Then
            xStrTemp = RupeeFormat_GetH(Right(xTemp, 3), xLp)
            If Right(Trim(xStrTemp), 3) <> "Lac" Then
            xLp = xLp + 1
            End If
        ElseIf Val(xTemp) <= 99 And Val(xTemp) > 9 Then
            xStrTemp = RupeeFormat_GetT(Right(xTemp, 2))
        ElseIf Val(xTemp) < 10 Then
            xStrTemp = RupeeFormat_GetD(Right(xTemp, 2))
        End If
        If xStrTemp <> "" Then
            xRStr = xStrTemp & xArrPlace(xF) & xRStr
        End If
        If xF = 2 Then
            If Len(xNumStr) = 1 Then
                xNumStr = ""
            Else
                xNumStr = Left(xNumStr, Len(xNumStr) - 2)
            End If
       ElseIf xF = 3 Then
            If Len(xNumStr) >= 3 Then
                 xNumStr = Left(xNumStr, Len(xNumStr) - 2)
            Else
                xNumStr = ""
            End If
        ElseIf xF = 4 Then
          xNumStr = ""
    Else
        If Len(xNumStr) <= 2 Then
        xNumStr = ""
    Else
        xNumStr = Left(xNumStr, Len(xNumStr) - 3)
        End If
    End If
        xF = xF + 1
Loop
    If xRStr = "" Then
       xRStr = "No Rupees"
    Else
       xRStr = xRStr
    End If
    If xRStr_Paisas <> "" Then
       xRStr_Paisas = " and " & xRStr_Paisas & " Paisas"
    End If
    RupeeFormat = xRStr & xRStr_Paisas & " Only"
    End Function
Function RupeeFormat_GetH(xStrH As String, xLp As Integer)
Dim xRStr As String
If Val(xStrH) < 1 Then
    RupeeFormat_GetH = ""
    Exit Function
Else
   xStrH = Right("000" & xStrH, 3)
   If Mid(xStrH, 1, 1) <> "0" Then
        If (xLp > 0) Then
         xRStr = RupeeFormat_GetD(Mid(xStrH, 1, 1)) & " Lac "
        Else
         xRStr = RupeeFormat_GetD(Mid(xStrH, 1, 1)) & " Hundred "
        End If
    End If
    If Mid(xStrH, 2, 1) <> "0" Then
        xRStr = xRStr & RupeeFormat_GetT(Mid(xStrH, 2))
    Else
        xRStr = xRStr & RupeeFormat_GetD(Mid(xStrH, 3))
    End If
End If
    RupeeFormat_GetH = xRStr
End Function
Function RupeeFormat_GetT(xTStr As String)
    Dim xTArr1 As Variant
    Dim xTArr2 As Variant
    Dim xRStr As String
    xTArr1 = Array("Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
    xTArr2 = Array("", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
    Result = ""
    If Val(Left(xTStr, 1)) = 1 Then
        xRStr = xTArr1(Val(Mid(xTStr, 2, 1)))
    Else
        If Val(Left(xTStr, 1)) > 0 Then
            xRStr = xTArr2(Val(Left(xTStr, 1)) - 1)
        End If
        xRStr = xRStr & RupeeFormat_GetD(Right(xTStr, 1))
    End If
      RupeeFormat_GetT = xRStr
End Function
Function RupeeFormat_GetD(xDStr As String)
Dim xArr_1() As Variant
    xArr_1 = Array(" One", " Two", " Three", " Four", " Five", " Six", " Seven", " Eight", " Nine", "")
    If Val(xDStr) > 0 Then
        RupeeFormat_GetD = xArr_1(Val(xDStr) - 1)
    Else
        RupeeFormat_GetD = ""
    End If
End Function



Zkuste to prosím, doufám, že vám to pomůže!
Tento komentář byl moderátorem webu minimalizován
Díky moc... 🙂
Tento komentář byl moderátorem webu minimalizován
Ale to platí pouze pro jeden excel. Pokud zadám tento vzorec v jiném Excelu, nefunguje to
jaké je pro toto řešení
prosím vrátit
Tento komentář byl moderátorem webu minimalizován
Ahoj,

Pokud máte několik sešitů, musíte kód zkopírovat do několika sešitů.
Pokud jej zkopírujete pouze do jednoho sešitu, nebude fungovat v jiných sešitech. 😀
Zkuste to prosím, děkuji!
Tento komentář byl moderátorem webu minimalizován
Díky moc je to velmi užitečné
Tento komentář byl moderátorem webu minimalizován
Dobrý den, pane, je možné toto nastavit jako výchozí pro každý pracovní list Excel nebo ne?
Tento komentář byl moderátorem webu minimalizován
Ahoj Mukeshi

Ano, pokud je kód zkopírován do modulu okna vba, vzorec lze použít na celý sešit.
Ale při zavírání sešitu byste jej měli uložit jako Sešit se zvýšeným makra Excel formát souboru.
Prosím vyzkoušejte, děkuji!
Tento komentář byl moderátorem webu minimalizován
Několikrát vyzkoušeno nefunguje. Prosím pomozte
Tento komentář byl moderátorem webu minimalizován
Ahoj, skvělá pomoc! Díky za vytvoření tak úžasného kódu.

Ušetřilo to spoustu času. "Bůh ti žehnej!!"
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL