Pokud jste někdy potřebovali zobrazit číslo napsané jako text, pravděpodobně jste zjistili, že Excel takovou funkci nenabízí. Když Excel nedoručí, je často možné nedostatek napravit pomocí VBA. Zde je funkce VBA s názvem SPELLDOLLARS , kterou můžete použít ve vzorcích listu.
Excel příklady
Zde je několik příkladů SPELLDOLLARS.
Kód VBA
Chcete-li použít tento kód, stiskněte Alt+F11 a aktivujte Editor jazyka Visual Basic. Poté zvolte Vložit → Modul a vložte nový modul VBA. Zkopírujte kód a vložte jej do nového modulu.
Funkce SPELLDOLLARS(buňka) Jako varianta
' Vrátí hodnotu vyjádřenou slovy
Tlumené dolary jako struna, centy jako struna
Dim TextLen As Long, Pos As Long
Dim Temp As String
Dim iHundreds as long, iTens as long, iones as long
Tlumené jedničky jako varianta, dospívající jako varianta, desítky jako varianta
Dim Units(2 to 5) As String
Dim bHit As Boolean, NegFlag As Boolean
„Není to číslo nebo prázdná buňka?
If Not IsNumeric(cell) Or cell = „“ Then
SPELLDOLLARS = CVERr(xlErrValue)
Exit Function
End If
'Je negativní?
If cell < 0="" then="" negflag="True" cell="Abs(cell)" end="" if="" dollars="Format(cell," "###0.00")="" textlen="Len(dolary)" -="" 3="" '="" is="" it="" too="" large?="" if="" textlen=""> 15 Pak
SPELLDOLLARS = CVERr(xlErrNum)
Exit Function
End If
"Rozdělte centy."
Centy = vpravo (dolary, 2) & „/100 dolarů“
Pokud buňka < 1="" then="" spelldollars="Cents" exit="" function="" end="" if="" dollars="Left(dollars," textlen)="" ones="Array( ""," "jedna",="" "dva",="" "tři",="" "čtyři",="" _="" "pět",="" "šest",="" "sedm",="" "osm",="" "devět")="" teens="Array("Deset", "jedenáct",="" "dvanáct",="" "třináct",= "" "čtrnáct",="" _="" "patnáct",="" "šestnáct",="" "sedmnáct",="" "osmnáct",="" "devatenáct")="" desítky= "Array(""," "",="" "dvacet",="" "třicet",="" "čtyřicet",="" "padesát",="" _="""šedesát",="" "sedmdesát",="" "osmdesát",="" "devadesát")="" jednotky(2)=""Tisíc"" jednotky(3)=""Milion"" jednotky( 4)="“miliarda”" jednotky(5)="“bilion”" temp="““" for="" pos="15" to="" 3="" step="" -3="" if="" textlen="">= Poz. - 2 Potom
bHit = nepravda
Pokud TextLen >= Poz. Potom
iHundreds = Asc(Mid$(dolary, TextLen - Poz + 1, 1)) - 48
Pokud iHundreds > 0 Pak
Teplota = Teplota & „ “ & Jedničky (i stovky) & „ Sto“
bHit = pravda
End If
End If
iTens = 0
Iones = 0
Pokud TextLen >= Poz. - 1 Potom
iTens = Asc(Mid$(dolary, TextLen - Poz + 2, 1)) - 48
End If
Pokud TextLen >= Poz. - 2 Potom
iOnes = Asc(Mid$(dolary, TextLen - Poz + 3, 1)) - 48
End If
Pokud iTens = 1 Pak
Temp = Temp & “ “ & Teens (iOnes)
bHit = pravda
Jiný
Pokud iTens >= 2 Pak
Teplota = Teplota & „ “ & Desítky (iTens)
bHit = pravda
End If
Pokud iOnes > 0 Pak
Pokud iTens >= 2 Pak
Teplota = Teplota & "-"
Jiný
Teplota = Teplota & „ “
End If
Temp = Temp & Ones (iOnes)
bHit = pravda
End If
End If
Pokud bHit And Poz > 3 Pak
Teplota = Teplota & „ “ & Jednotky (Poz. 3)
End If
End If
Další Poz
SPELLDOLLARS = Trim(Temp) & “ a “ & Cents
If NegFlag Then SPELLDOLLARS = “(“ & SPELLDOLLARS & “)”
End Function