小写金额如何转大写?

王朝知道·作者佚名  2009-07-16
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

我想让EXCEL自动地把小写金额转换为大写金额,有人曾设过公式解决此问题,但我觉得不够好,因此特想求一段VBA代码解决此问题,哪位高手相助?

參考答案:

以下是一段用VBA代码编写的金额小写转大写的函数:

public function zdx(x as currency) as string

dim lnp as integer

dim prc as string

dim tmp as string

dim nob as currency

dim dx as string

dim xx as string

dim zhen as boolean

dim str(10) as string

dim china as string

china = "分角元拾佰仟万拾佰仟亿"

str(0) = "零"

str(1) = "壹"

str(2) = "贰"

str(3) = "叁"

str(4) = "肆"

str(5) = "伍"

str(6) = "陆"

str(7) = "柒"

str(8) = "捌"

str(9) = "玖"

zhen = true

x = formatnumber(x, 2)

prc = cstr(x)

prc = replace(prc, ",", "")

lnp = len(prc)

for i = lnp - 1 to 1 step -1

if mid(prc, i, 1) = "." then

select case lnp - i

case 1

prc = replace(prc, ".", "") + "0"

case 2

prc = replace(prc, ".", "")

end select

zhen = false

exit for

end if

next i

if zhen then prc = prc + "00"

lnp = len(prc)

for i = 1 to lnp

tmp = str(mid(prc, i, 1)) & tmp

next i

zdx = ""

fy = 1

for i = 1 to lnp

xx = mid(tmp, i, 1)

dx = mid(china, i, 1)

if xx <> "零" then

zdx = xx & dx & zdx

f = 1

else

if i = 3 then

zdx = dx & zdx

end if

if i = 7 then

zdx = dx & zdx

end if

if f then

zdx = "零" & zdx

end if

f = 0

end if

next i

if zhen then zdx = zdx + "正"

zdx = replace(zdx, "零万", "万")

zdx = replace(zdx, "零元", "元")

end function

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航