Office中国论坛/Access中国论坛

标题: [分享]数字转中文大写金额的加载宏 [打印本页]

作者: 老鬼    时间: 2005-1-19 06:00
标题: [分享]数字转中文大写金额的加载宏
这个程序是我根据网上的一段VB改写的,原作者忘了,对不起。

这类程序网上很多,之所以推荐这个,是因为这是我所见过的所有的转换中文大写金额的程序中最简练有效的一个。

我上传的文件是一个加载宏,使用方法是:工具——加载宏——浏览——选择所需加载宏的路径,选择加载宏打开后,加载宏界面的“可用的加载宏”窗口会有一个“小写转大写金额”的加载宏,点勾后加载。加载后,工作簿上会多出一个自定义函数“BIGNUM()”,用它就可以将阿拉伯数字转为中文大写金额。




作者: 西岭雪    时间: 2005-1-27 06:49
呵呵,高手,真是高手啊!!谢谢了,搞定了
作者: glober609    时间: 2005-1-28 00:44
很好!
作者: liuhoubin168    时间: 2005-2-23 06:13
比我以前编写的代码简单多了。学到!
作者: rowbrain    时间: 2005-2-24 19:56
真的是很好!!!
作者: zv1185    时间: 2005-2-28 04:49
万分感谢。
作者: Bluelost    时间: 2005-3-4 02:20
我想看这个宏的代码怎么看啊?
作者: ahaoge    时间: 2005-3-4 03:17
先自定义一个函数BIGNUM,代码如下: Public Function BigNum(小写数字 As Currency)

  Application.Volatile

  If 小写数字 = 0 Then

    BigNum = "零元整"

  Else

    Const cNum = "零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分"

    Const cCha = "零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万元亿零整整"

    BigNum = ""

    sNum = Trim(Str(Int(Round(小写数字, 2) * 100)))

      For i = 1 To Len(sNum) '逐位转换

        BigNum = BigNum + Mid(cNum, (Mid(sNum, i, 1)) + 1, 1) + Mid(cNum, 26 - Len(sNum) + i, 1)

      Next i

      For i = 0 To 11 '去掉多余的零

        BigNum = Replace(BigNum, Mid(cCha, i * 2 + 1, 2), Mid(cCha, i + 26, 1))

      Next i

   End If

End Function
作者: ahaoge    时间: 2005-3-4 03:24
工具-->宏---visual basic编辑器---模块
作者: 川破酷子    时间: 2005-3-28 05:24
标题: 请问如何用这个宏命令呢?
具体如何操作

谢谢

举个例子,谢谢
作者: 红池坝    时间: 2005-5-23 22:41
试试这个公式:=IF(A1=0,"零元整",IF(A1<0,"负",)&IF(INT(ABS(A1)),TEXT(INT(ABS(A1)),"[dbnum2]")&"元",)&IF(INT(ABS(A1)*10)-INT(ABS(A1))*10,TEXT(INT(ABS(A1)*10)-INT(ABS(A1))*10,"[dbnum2]")&"角",IF(INT(ABS(A1))=ABS(A1),,"零"))&IF(ROUND(ABS(A1)*100-INT(ABS(A1)*10)*10,),TEXT(ROUND(ABS(A1)*100-INT(ABS(A1)*10)*10,),"[dbnum2]")&"分","整"))
作者: 淼漫    时间: 2005-5-30 17:58
经测试,楼主公布的宏有些缺陷, 当为负数是程序错误.等我有时间要重新改一下
作者: lzx-shmily    时间: 2005-5-30 18:08
這個更簡單:=TEXT(INT(ROUND(C6,2)), "[DBNum2]")&"元"&IF(INT(ROUND(C6,2))=ROUND(C6,2),"整",IF(INT(ROUND(C6,2)*10)=ROUND(C6*10,1),TEXT(RIGHT(INT(ROUND(C6,2)*10),1),"[DBNum2]")&"角整",TEXT(RIGHT(INT(C6*10),1),"[DBNum2]")&"角"&TEXT(RIGHT(ROUND(C6,2),1),"[DBNum2]")&"分"))
作者: 淼漫    时间: 2005-5-30 21:36
确实语句少了一些,但含有较大缺陷:

1.对负数的计算缺陷:

   "-"号不能转化为汉字"负"; 具体数值计算也不正确,

    如 -3.11 计算结果为 -肆元贰角壹分(正确结果应为负叁元壹角壹分)

2.对小数金额的描述缺陷:

   如 0.11 计算结果为 零元壹角壹分,  (正确结果应为壹角壹分,没有"零元"字样)

如果用公式的话, 还是11楼红池坝的好.

[此贴子已经被作者于2005-5-30 13:37:15编辑过]


作者: 红池坝    时间: 2005-5-30 22:34
要说功能强大,还是这个最牛的:http://www.office-cn.net/Article/Class5/Class16/200411/644.html
作者: 晓月清风    时间: 2005-6-9 22:11
COOL!
作者: 晓月清风    时间: 2005-6-14 18:24
以下是引用红池坝在2005-5-30 14:34:00的发言:



要说功能强大,还是这个最牛的:

http://www.office-cn.net/Article/Class5/Class16/200411/644.html

真的很牛!!!!![em17][em17][em17]
作者: jiahong_fish    时间: 2005-12-11 22:36
是简单多了,去零处理的好!
作者: PY3441246    时间: 2005-12-13 00:41
你的这个文件怎么打不开呀
作者: jiahong_fish    时间: 2005-12-13 08:42
顶一下

程序是我根据网上的一段VFP改写的,不知对大家是否有用?

Function dxrmb(je)
'人民币大小写转化函数
Dim dxsz, bzdw, newdw, dwje, dsz, tqsz As String
Dim t, stringlong, num0 As Integer
dxsz = "零壹贰叁肆伍陆柒捌玖" '大写数字
bzdw = "亿仟佰拾万仟佰拾元角分" '标准单位
num0 = 0
sz = Trim(Str(Round(je, 2) * 100)) '数据
stringlong = Len(sz) '取数字的长度
newdw = Trim(Right(bzdw, stringlong)) '取单位的位数
dwje = ""
If stringlong >= 12 Then
    MsgBox "输入数值已超出范围!!"
    dxreb = ""
    Exit Function
End If
For t = 1 To stringlong
     tqsz = Mid(sz, t, 1) '提取数字
     dsz = Mid(dxsz, Val(tqsz) + 1, 1) '提取大写数据
     dw = Mid(newdw, t, 1) '取得单位
     If tqsz = "0" Then
        If dw = "万" Or dw = "元" Then
           dsz = ""
           num0 = 0
        Else
           dsz = ""
           dw = ""
           num0 = num0 + 1
        End If
      Else
        If num0 >= 1 Then
           dsz = "零" + dsz
           num0 = 0
        End If
      End If
     dwje = dwje + dsz + dw
Next t
   If Right(sz, 2) = "00" Then
      dwje = dwje + "整"
   End If
dxrmb = dwje
End Function

作者: hfsp    时间: 2006-1-1 22:03
这个是用函数的方法一样呀,但其它的网上的编写我却不会用呀。
作者: superslow    时间: 2006-2-18 06:02
好啊,厉害!
作者: ghost_jack    时间: 2006-4-21 20:08




WorksheetFunction.Text(TextBox1.Value, "[dbnum2]")



就OK,自己写 好累哦
作者: HSQ8888    时间: 2006-4-28 01:07
好,比我原来自己设的简单。


作者: green-av    时间: 2006-4-30 21:41
谢谢楼主提供,先研究下
作者: sanqing    时间: 2006-8-4 00:24
好东东,俺收获不少,真是感谢大家.
作者: laokou    时间: 2006-8-4 01:54
我是2007怎样引入?
作者: goldowl    时间: 2008-3-24 22:04
标题: thanks
......
作者: largewhitecat    时间: 2008-3-25 15:06
标题: 回复 1# 的帖子
11111111111111111111111111111111111111111111
作者: dghangh    时间: 2008-3-26 14:50
标题: 回复 1# 的帖子
看一下
作者: FM123    时间: 2008-3-27 08:32
下载学习
作者: goneby007    时间: 2008-3-28 14:31
支持一个 正需要
作者: LIXIANACCP    时间: 2008-4-24 15:49
11111111111111
作者: junta    时间: 2008-5-6 14:41
感谢分享,ACCESS应该也能用吧
作者: junta    时间: 2008-5-6 15:40
没有负不行阿
作者: hongrong    时间: 2008-5-7 09:08
hhhhhhhhhhhhhh
作者: 6230    时间: 2008-5-20 18:24
下载了,看看效果,谢谢
作者: susan99    时间: 2008-6-9 13:12
谢谢,非常感谢
作者: 席子    时间: 2008-6-10 13:18
不错,下下来研究下
作者: uity_zy    时间: 2008-6-15 02:38
万分感谢。
作者: hpmaanshan    时间: 2008-6-16 21:51
广告歌广告歌广告歌广告歌广告歌广告歌广告歌个
作者: chenwm1973    时间: 2008-6-16 22:01
[:50] [:50]
作者: lyons88    时间: 2008-6-23 10:42
我要下载,看看
作者: mzpy    时间: 2008-6-28 16:22
谢谢谢谢[:50]
作者: xiaozhuyqw    时间: 2008-6-29 16:03
呵呵,高手,真是高手啊!!谢谢了,搞定了
作者: eqiang    时间: 2008-7-4 21:56
标题: 有用啊,好极了
有用啊,好极了
作者: mcy01008    时间: 2008-7-5 13:13
标题: dfg
rgrztg
作者: shaomingyue    时间: 2008-7-12 13:41
真是太好了,这样就不怕设好的公式被其他人误修改了
作者: nchjiasong    时间: 2008-7-25 15:59
呵呵,高手,真是高手啊!!谢谢了,搞定了
作者: iori99    时间: 2008-8-13 11:51
果然很牛,吸收了!
作者: 张宏伟    时间: 2008-8-14 19:50
高手,谢谢楼主啊
作者: wuzipan    时间: 2008-8-14 22:45
标题: 学习中
辛苦了,谢谢
作者: lnzxc321    时间: 2008-8-16 02:54
学习学习
作者: xjliyuehua    时间: 2008-8-20 13:08
学习学习
作者: tjzbk    时间: 2008-9-3 15:32
谢谢赐教
作者: cenrain    时间: 2008-9-16 12:19
请指教
作者: huangdexun    时间: 2008-11-16 11:06
看看代码,学习,我正需要。
作者: xiujuok    时间: 2008-11-25 09:33
look
作者: 九剑    时间: 2008-11-27 22:28
顶顶[:32]
作者: lzhuohui    时间: 2008-11-30 22:45
学习学习
作者: zhang001    时间: 2008-12-28 22:22
看看先
作者: 神州学人    时间: 2009-1-9 17:57
学习了
作者: wenwen000424    时间: 2009-1-24 19:10
学习收藏
作者: quiny    时间: 2009-2-15 13:58
太感谢了,我现在正需要
作者: shixuewuhen    时间: 2009-2-26 16:35
我要啊     快给我撒   
作者: hotsunny2005    时间: 2009-3-6 11:14
看看?
作者: Franc007She    时间: 2009-3-6 11:37
居然设置了隐藏!!!
作者: biwen7    时间: 2009-3-6 13:50
学习中
作者: wdjzh    时间: 2009-3-8 11:41
我想看这个宏的代码,学习学习!谢谢!
作者: liu2004    时间: 2009-3-9 09:52
LOOK
作者: aigoo    时间: 2009-3-19 00:24
这个好
作者: cncyb    时间: 2009-3-24 23:02
GOOD
作者: wwwwad    时间: 2009-4-14 22:41
dddddd
作者: ziguang888    时间: 2009-4-23 17:34
kankan
作者: m520052    时间: 2009-4-24 09:20
好东西要分享
作者: xmxiaohe    时间: 2009-5-6 15:19
ddddddddddddddddddddddddd
作者: xydongxh    时间: 2009-5-11 10:20
好东西大家分享,非常感谢.
作者: bombtuo    时间: 2009-5-16 12:10
我顶一个!!!
作者: dadanian2001    时间: 2009-5-16 14:33
怎么样导入到 ACCESS2007啊?
作者: ifyit    时间: 2009-5-25 23:45
找了很久,试试还能用不?
作者: eversea09    时间: 2009-6-8 11:00
学习一下
作者: andany    时间: 2009-6-9 14:03
谢谢,非常有用!!
作者: rbgqd    时间: 2009-6-15 10:59
正是所需
作者: www96    时间: 2009-6-15 18:10

作者: kennedyli    时间: 2009-6-15 22:56
多谢分享
作者: 泡沫滅火器    时间: 2009-6-24 10:32
我需要這個來參考
謝謝
作者: chenlunjia    时间: 2009-7-4 15:01
我要啊     快给我撒
作者: jqcat    时间: 2009-7-16 09:56
谢谢 不知如何
作者: mushroom0123    时间: 2009-7-17 12:39
hehe  不错啊 终于找到了
作者: ljtao8888    时间: 2009-7-31 14:05
学习下~~~~~~~~~~~~~~~~~~~~
作者: xms111    时间: 2009-8-7 13:30
很好~
作者: tlweia    时间: 2009-8-9 14:57
高手!
作者: ameliagj    时间: 2009-8-18 09:42
呵呵,高手,真是高手啊
作者: elong    时间: 2009-8-20 15:09

作者: natureli    时间: 2009-8-27 17:00
感谢!
作者: xxiaoxin321    时间: 2009-9-2 21:20
谢谢!
作者: xiaoy_yx    时间: 2009-9-3 16:11
哈哈。终于让我打开了
作者: 9701522    时间: 2009-9-11 09:54
正在找这个,很需要,谢谢
作者: 3236235    时间: 2009-9-12 20:14
学习一下
作者: luningjie    时间: 2009-9-21 21:10
xiexie!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3