ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ldy888

[挑战]功能最全、最短(7行)的人民币大写函数

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2007-11-2 19:50 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-11-4 00:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

太好了……

TA的精华主题

TA的得分主题

发表于 2007-11-12 15:02 | 显示全部楼层

A = IIf(y < 1, "", Application.Text(y, "[DBNum2]") & "元")
b = IIf(j > 9.5, Application.Text(Int(j / 10), "[DBNum2]") & "角", IIf(y < 1, "", IIf(f > 1, "零", "")))
c = IIf(f < 1, "整", Application.Text(Round(f, 0), "[DBNum2]") & "分")
ldy888 = IIf(Abs(M) < 0.005, "", IIf(M < 0, "负" & A & b & c, A & b & c))

这几行可以合并为一行,

但看起来比较累,不合乎程序编写原则

TA的精华主题

TA的得分主题

发表于 2007-11-12 15:30 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-11-17 16:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

汗。。。。。

excel里面自带的就有人民币大写函数:ESF_MnyToCap(),不必用几行来完成呵。

[此贴子已经被作者于2007-11-17 16:01:07编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-11-17 16:07 | 显示全部楼层
QUOTE:
以下是引用zba37在2007-11-17 16:00:11的发言:

汗。。。。。

excel里面自带的就有人民币大写函数:ESF_MnyToCap(),不必用几行来完成呵。


你用的是 Excel服务器吧

Excel服务器2005中增加了一个小写金额转换为大写金额的函数ESF_MnyToCap

看来你对EXCEL太不了解了

TA的精华主题

TA的得分主题

发表于 2007-11-17 16:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼上的是什么版本的excel呢?我的2003和2007都没有哎。

TA的精华主题

TA的得分主题

发表于 2007-11-19 22:26 | 显示全部楼层

呵呵,还真是的,我以前没太注意,最近装了服务器没事研究研究,看到里面有这个公式,还以为是excel自带的

[em04][em04]
[此贴子已经被作者于2007-11-19 22:33:48编辑过]

TA的精华主题

TA的得分主题

发表于 2007-11-22 10:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

本人也修改了一下,个人认为应该是多少元才算是整数,公司也是这样要求,所以修改了一下,请大家多接指教!

Function N1RMB(M)
    y = Int(Round(100 * Abs(M)) / 100)
    j = Round(100 * Abs(M) + 0.00001) - y * 100
    f = (j / 10 - Int(j / 10)) * 10
    A = IIf(y < 1, "", Application.Text(y, "[DBNum2]") & "元")
    b = IIf(j > 9.5, Application.Text(Int(j / 10), "[DBNum2]") & "角", IIf(y < 1, "", IIf(f > 0, "零", IIf(j < 9.5, "整", ""))))
    c = IIf(f = 0, "", Application.Text(Round(f, 0), "[DBNum2]") & "分")
    N1RMB = IIf(Abs(M) < 0.005, "", IIf(M < 0, "¸º" & A & b & c, A & b & c))
End Function

[此贴子已经被作者于2007-11-22 10:30:41编辑过]

TA的精华主题

TA的得分主题

发表于 2007-12-5 10:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我不知是不是版本的差异,楼主的公式上了一百万就有六分钱的差异呵!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 18:23 , Processed in 0.047887 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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