设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 5878|回复: 15
打印 上一主题 下一主题

[行业] 函数实现帐本计数及大写金额(方法二则)

[复制链接]

点击这里给我发消息

1#
发表于 2008-3-19 13:30:06 | 显示全部楼层
嘿嘿......试用过隐藏函数吗,公式可以短很多哟......
用NUMBERSTRING
先不公布
江版动脑筋自己做一个

点击这里给我发消息

2#
发表于 2008-3-19 16:23:02 | 显示全部楼层
江版输入2.392试试

点击这里给我发消息

3#
发表于 2008-3-19 16:30:58 | 显示全部楼层
还有,再输入2.329试试

点击这里给我发消息

4#
发表于 2008-3-19 16:52:05 | 显示全部楼层
再分享两个自定义函数(不是我写的):
Function NtoC(n)  'n as single
Const cNum = "零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分"
Const cCha = "零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万元亿零整整"
  NtoC = ""
  sNum = Trim(Str(Int(n * 100)))
  For I = 1 To Len(sNum) '逐位转换
    NtoC = NtoC + Mid(cNum, (Mid(sNum, I, 1)) + 1, 1) + Mid(cNum, 26 - Len(sNum) + I, 1)
  Next
  For I = 0 To 11 '去掉多余的零
    NtoC = Replace(NtoC, Mid(cCha, I * 2 + 1, 2), Mid(cCha, I + 26, 1))
  Next
End Function

Public Function BigNum(小写数字 As Double)   '将数字转为中文大写金额(本函数根据网络上的代码改编)
Application.Volatile
    If 小写数字 = 0 Then
        BigNum = "零元整"
    Else
        Const cNum = "零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分"
        Const cCha = "零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万元亿零整整"
        BigNum = ""
        sNum = Round(Abs(小写数字), 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
        For I = 0 To 11 '去掉多余的零
            BigNum = Replace(BigNum, Mid(cCha, I * 2 + 1, 2), Mid(cCha, I + 26, 1))
        Next
        If 小写数字 < 0 Then
            BigNum = "负" & BigNum
        End If
    End If
End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-11 22:55 , Processed in 0.091285 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表