时间: 2021-07-31 作者:daque
function daxie(money as string) as string 'dim x as string, y as stringconst zimu = ".sbqwsbqysbqwsbq" '设置场所代码const letter = "0123456789sbqwy.zjf" '设置中国字缩写const upcase = "零壹贰叁肆伍陆柒捌玖拾佰仟萬億圆整角分" '设置小写中国字dim temp as stringtemp = moneyif instr(temp, ".") > 0 then temp = left(temp, instr(temp, ".") - 1)
if len(temp) > 16 then msgbox "数量太大,没辙折算!请输出一亿亿以次的数字", 64, "缺点提醒": exit function '只能变换一亿亿元以次数手段钱币!
x = format(money, "0.00") '方法化钱币y = ""for i = 1 to len(x) - 3y = y & mid(x, i, 1) & mid(zimu, len(x) - 2 - i, 1)nextif right(x, 3) = ".00" theny = y & "z" '***元整else y = y & left(right(x, 2), 1) & "j" & right(x, 1) & "f" '*元*角*分 end ify = replace(y, "0q", "0") '制止零千(如:40200肆萬零千零贰佰)y = replace(y, "0b", "0") '制止零百(如:41000肆萬壹千零佰)y = replace(y, "0s", "0") '制止零十(如:204贰佰零鳞爪肆)
do while y <> replace(y, "00", "0")y = replace(y, "00", "0") '制止双零(如:1004壹仟零零肆)loopy = replace(y, "0y", "y") '制止零億(如:210億 贰佰壹十零億)y = replace(y, "0w", "w") '制止零萬(如:210萬 贰佰壹十零萬)y = iif(len(x) = 5 and left(y, 1) = "1", right(y, len(y) - 1), y) '制止壹十(如:14壹拾肆;10壹拾)y = iif(len(x) = 4, replace(y, "0.", ""), replace(y, "0.", ".")) '制止零元(如:20.00贰鳞爪圆;0.12零圆壹角贰分)
for i = 1 to 19y = replace(y, mid(letter, i, 1), mid(upcase, i, 1)) '小写中国字nextdaxie = yend function
private sub command3_click()debug.print daxie("6218212212309322.3238") ' return: 陆仟贰佰壹拾捌萬贰仟壹佰贰拾贰億壹仟贰佰叁拾萬玖仟叁佰贰拾贰圆叁角贰分end sub