Jos olet joskus joutunut näyttämään tekstinä kirjoitetun numeron, olet todennäköisesti huomannut, että Excel ei tarjoa tällaista toimintoa. Kun Excel ei toimita, on usein mahdollista korjata puute VBA:lla. Tässä on VBA-funktio, nimeltä SPELLDOLLARS , jota voit käyttää laskentataulukon kaavoissa.
Excel-esimerkkejä
Tässä on joitain esimerkkejä SPELLDOLLARSista.
VBA-koodi
Voit käyttää tätä koodia painamalla Alt+F11 aktivoidaksesi Visual Basic Editorin. Valitse sitten Lisää → Moduuli lisätäksesi uuden VBA-moduulin. Kopioi koodi ja liitä se uuteen moduuliin.
Funktio SPELLDOLLARS(solu) Varianttina
' Palauttaa arvon sanoin kirjoitettuna
Dim Dollars Kuten String, Cents Kuten String
Himmeä tekstiLen As Long, Pos As Long
Dim Temp As String
Dim iHundreds As Long, iTens As Long, iOnes As Long
Dim Ones Varianttina, Teens As Variant, Tens As Variant
Dim Units (2 - 5) merkkijonona
Dim bHit Boolen, NegFlag Boolen
Onko se ei-luku vai tyhjä solu?
Jos ei IsNumeric(solu) Tai solu = "" Sitten
SPELLDOLLARS = CVERr(xlErrArvo)
Lopeta toiminto
Loppu Jos
' Onko se negatiivinen?
Jos solu < 0="" then="" negflag="True" cell="Abs(solu)" end="" if="" dollars="Muoto(solu," "###0.00")="" textlen="Len(Dollaria)" -="" 3="" '="" is="" it="" too="" large?="" if="" textlen=""> 15 Sitten
SPELLDOLLARS = CVERr(xlErrNum)
Lopeta toiminto
Loppu Jos
' Tee senttiosuus
Senttiä = oikea (dollaria, 2) & "/100 dollaria"
Jos solu < 1="" then="" spelldollars="Senttiä" exit="" function="" end="" if="" dollars="Left(Dollars," textlen)="" ones="Array( ""," "yksi",="" "kaksi",="" "kolme",="" "neljä",="" _="" "viisi",="" "kuusi",="" "seven",="" "eight",="" "nine"="" teens="Array("Kymmenen"," "yksitoista",="" "kaksitoista",="" "kolmetoista",= "" "neljätoista",="" _="" "fifteen",="" "sixteen",="" "seventeen",="" "kahdeksantoista",="" "yhdeksäntoista"="" tens= "Array(""," "",="" "twenty",="" "thirty",="" "neljäkymmentä",="" "fifty",="" _="""sixty",="" "seventy",="" "kahdeksankymmentä",="" "yhdeksänkymmentä"="" units(2)=""Thousand"" units(3)=""Miljoona"" units( 4)=""Miljoona"" yksikköä(5)=""Trillion"" temp="""" for="" pos="15" to="" 3="" step="" -3="" if="" textlen="">= Pos - 2 Sitten
bHit = False
Jos TextLen >= Pos Then
iHundreds = Asc(keski$(dollarit, tekstiln - sijainti + 1, 1)) - 48
Jos iHundreds > 0 Sitten
Lämpötila = Lämpötila & " " & Ones (iSata) & " Sata"
bHit = Totta
Loppu Jos
Loppu Jos
iTens = 0
iOnes = 0
Jos TextLen >= Pos - 1 Sitten
iTens = Asc(keski$(dollarit, tekstiln - Pos + 2, 1)) - 48
Loppu Jos
Jos TextLen >= Pos - 2 Sitten
iOnes = Asc(keski$(dollarit, tekstiln - Pos + 3, 1)) - 48
Loppu Jos
Jos iTens = 1 Sitten
Lämpötila = Lämpötila & " " & Teinit (iOnes)
bHit = Totta
Muu
Jos iTens >= 2 Sitten
Lämpötila = Lämpötila & " " & Kymmeniä (iTens)
bHit = Totta
Loppu Jos
Jos iOnes > 0 Sitten
Jos iTens >= 2 Sitten
Lämpötila = Lämpötila & "-"
Muu
Lämpö = lämpötila & " "
Loppu Jos
Temp = Temp & Ones (iOnes)
bHit = Totta
Loppu Jos
Loppu Jos
Jos bHit And Pos > 3 Sitten
Lämpötila = Lämpötila & " " & yksiköt (positio 3)
Loppu Jos
Loppu Jos
Seuraava Pos
SPELLDOLLARS = Trim(Temp) & “ ja “ & Cents
Jos NegFlag sitten SPELLDOLLARS = "(" & SPELLDOLLARS & ")"
Lopeta toiminto