Visual Basic Excel Number to English -
Visual Basic Excel Number to English -
i've found code on microsoft website , want edit not write 1 hunred or 1 one thousand , found adding if mid(mynumber, 1, 1) = "1" result = "hundred" end if gethundreds function not write 1 before hundred how can create same thousand part?
thanks.
option explicit 'main function function spellnumber(byval mynumber) dim dollars, cents, temp dim decimalplace, count redim place(9) string place(2) = " one thousand " place(3) = " 1000000 " 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 , set mynumber dollar amount. if decimalplace > 0 cents = gettens(left(mid(mynumber, decimalplace + 1) & _ "00", 2)) mynumber = trim(left(mynumber, decimalplace - 1)) end if count = 1 while mynumber <> "" temp = gethundreds(right(mynumber, 3)) if temp <> "" dollars = temp & place(count) & dollars if len(mynumber) > 3 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 = " , no cents" case "one" cents = " , 1 cent" case else cents = " , " & cents & " cents" end select spellnumber = dollars & cents end function ' converts number 100-999 text function gethundreds(byval mynumber) dim result string if val(mynumber) = 0 exit function mynumber = right("000" & mynumber, 3) ' convert hundreds place. if mid(mynumber, 1, 1) <> "0" result = getdigit(mid(mynumber, 1, 1)) & " hundred " end if ' convert tens , ones place. if mid(mynumber, 2, 1) <> "0" result = result & gettens(mid(mynumber, 2)) else result = result & getdigit(mid(mynumber, 3)) end if gethundreds = result end function ' converts number 10 99 text. function gettens(tenstext) dim result string result = "" ' null out temporary function value. if val(left(tenstext, 1)) = 1 ' 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 number 1 9 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
you have alter results getdigits
, gettens
functions.
excel basic
Comments
Post a Comment