Jei kada nors reikėjo rodyti skaičių, parašytą kaip tekstą, tikriausiai pastebėjote, kad „Excel“ nesiūlo tokios funkcijos. Kai „Excel“ nepavyksta pristatyti, dažnai galima ištaisyti trūkumą naudojant VBA. Štai VBA funkcija, pavadinta SPELLDOLLARS , kurią galite naudoti darbalapio formulėse.
Excel pavyzdžiai
Štai keletas SPELLDOLLARS pavyzdžių .
VBA kodas
Norėdami naudoti šį kodą, paspauskite Alt + F11, kad suaktyvintumėte Visual Basic redaktorių. Tada pasirinkite Įterpti → Modulis, kad įterptumėte naują VBA modulį. Nukopijuokite kodą ir įklijuokite jį į naują modulį.
Funkcija SPELLDOLLARS (ląstelė) kaip variantas
' Grąžina vertę, išreikštą žodžiais
Neryškūs doleriai kaip styga, centai kaip styga
Pritemdytas tekstasLen As Long, Pos As Long
Dim Temp As String
Dim iHundreds As Long, iTens As Long, iOnes As Long
Dim Ones As Variant, Teens As Variant, Tens As Variant
Pritemdyti vienetus (nuo 2 iki 5) kaip eilutė
Dim bHit As Boolean, NegFlag As Boolean
Ar tai ne skaičius, ar tuščias langelis?
Jei ne Isskaitinis(ląstelė) Arba langelis = "" Tada
SPELLDOLLARS = CVERr(xlErrValue)
Išėjimo funkcija
Pabaiga, jei
'Ar tai neigiama?
Jei langelis < 0="" then="" negflag="True" cell="Abs(cell)" end="" if="" dollars="Formatas (ląstelė", "###0.00")="" textlen="Len(doleriai)" -="" 3="" '="" is="" it="" too="" large?="" if="" textlen=""> 15 Tada
SPELLDOLLARS = CVERr(xlErrNum)
Išėjimo funkcija
Pabaiga, jei
“ Atlikite centų dalį
Centai = dešinė (doleriai, 2) ir „/100 dolerių“
Jei langelis < 1="" then="" spelldollars="Cents" exit="" function="" end="" if="" dollars="Left(Dollars," textlen)="" ones="Array( ""," "vienas",="" "du",="" "trys",="" "keturi",="" _="" "penki",="" "šeši",="" "septyni",="" "aštuoni",="" "devyni"="" teens="Array("Ten"," "vienuolika",="" "dvylika",="" "trylika",= "" "keturiolika",="" _="" "penkiolika",="" "šešiolika",="" "septyniolika",="" "aštuoniolika",="" "devyniolika"="" tens= "Array(""," "",="" "dvidešimt",="" "trisdešimt",="" "keturiasdešimt",="" "penkiasdešimt",="" _="""šešiasdešimt",="" "septyniasdešimt",="" "aštuoniasdešimt",="" "devyniasdešimt"="" units(2)=""tūkstantis"" vienetai(3)=""milijonas"" vienetai ( 4)=""Milijardas"" vienetai(5)=""Trilijonas"" temp="""" for="" pos="15" to="" 3="" step="" -3="" if="" textlen="">= Pos - 2 Tada
bHit = klaidinga
Jei TextLen >= Pos tada
iHundreds = Asc (vidutinis $ (doleriai, tekstas Len - poz. + 1, 1)) - 48
Jei iHundreds > 0 Tada
Temp = Temp & " " & Ones (iHundreds) ir " Hundred"
bHit = Tiesa
Pabaiga, jei
Pabaiga, jei
iTens = 0
„iOnes“ = 0
Jei TextLen >= Pos - 1 Tada
iTens = Asc (vidutinis $ (doleriai, tekstas Len - poz. + 2, 1)) - 48
Pabaiga, jei
Jei TextLen >= Pos - 2 Tada
iOnes = Asc (vidutinis $ (doleriai, tekstas Len - poz. + 3, 1)) - 48
Pabaiga, jei
Jei iTens = 1 Tada
Temp = Temp & " " & Teens (iOnes)
bHit = Tiesa
Kitas
Jei iTens >= 2 Tada
Temp = Temp & " " & Tens (iTens)
bHit = Tiesa
Pabaiga, jei
Jei iOnes > 0 Tada
Jei iTens >= 2 Tada
Temp = Temp ir "-"
Kitas
Temp = Temp & " "
Pabaiga, jei
Temp = Temp & Ones (iOnes)
bHit = Tiesa
Pabaiga, jei
Pabaiga, jei
Jei bHit Ir Pos > 3 Tada
Temp = Temp & " " & vienetai (3 poz.)
Pabaiga, jei
Pabaiga, jei
Kitas poz
SPELLDOLLARS = Trim(Temp) & “ ir “ & Cents
Jei NegFlag tada SPELLDOLLARS = "(" & SPELLDOLLARS & ")"
Pabaigos funkcija