ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 我急需要这种小写转换大写的办法!请高手赐教,谢谢!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2003-6-2 09:13 | 显示全部楼层 |阅读模式
我急需要这种小写转换大写的办法。如在A1格内输入:123456.23后,直接在原格内(仍在A1格内)显示大写壹拾贰万叁仟肆佰伍拾陆元贰角叁分。谢谢!






[此贴子已经被作者于2003-6-2 9:44:28编辑过]

TA的精华主题

TA的得分主题

发表于 2003-6-2 16:48 | 显示全部楼层
如果非得要在原单元格,就只好用VBA来做了;
具体实现方式在论坛中有实例!

TA的精华主题

TA的得分主题

 楼主| 发表于 2003-6-3 21:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
看遍论坛,都是在分开输入和显示,我需要的还是没有找到,请高手指教!

TA的精华主题

TA的得分主题

发表于 2003-6-4 12:35 | 显示全部楼层
to aquan
试试这个!在A1中输入任何数字。

TA的精华主题

TA的得分主题

 楼主| 发表于 2003-6-4 15:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zhangzhang你好!
   你给的格式正是我想要的,但是我在自己的电脑上就不行了,可否告诉是怎么弄的吗?谢谢!


[此贴子已经被作者于2003-6-4 15:26:01编辑过]

TA的精华主题

TA的得分主题

发表于 2003-6-4 15:58 | 显示全部楼层
用VBA编写的一个过程(宏),按 Alt + F11 就可以看到具体的内容,将VBA代码copy 到你的文件的相同位置即可。

TA的精华主题

TA的得分主题

 楼主| 发表于 2003-6-4 16:28 | 显示全部楼层
zhangzhang您好!
   我不会VBA语言,还是不会使用,麻烦您在我的表上做一下好吗?



[此贴子已经被作者于2003-6-4 16:33:58编辑过]

TA的精华主题

TA的得分主题

发表于 2003-6-4 17:34 | 显示全部楼层

这是源程序。另:我不是那个周。

Function MHdxrmb(Arab) '转换货币为大写,提供的数据 Arab 为任意格式。
    Dim z1 As String, z2 As String, MHdxrmb_head As String
    Dim k As Byte, m As Byte, n As Byte, Arab_cd As Byte
    Dim b1 As String, b2 As String, b3 As String
    z1 = "分角元拾佰仟万拾佰仟亿拾佰仟"
    z2 = "零壹贰叁肆伍陆柒捌玖"
   
    '判断输入值是否有效
    If IsNumeric(Arab) = False Or Arab < 0 Or Trim(Arab) = Null Or Arab = "" Then
        MHdxrmb = "无效数值"
        Exit Function
    ElseIf Trim(Arab) = 0 Then
        MHdxrmb = "零元整"
        Exit Function
    End If
   
    Arab = Arab * 100 '将输入值扩大100倍以去掉小数点
    Arab_cd = Len(Format(Arab, "###0")) '转换其为String型
    If Arab_cd > 14 Then
        MHdxrmb = "数值过大"
        Exit Function
    End If
   
    k = 0
    MHdxrmb = ""
    Do While Arab_cd > 0
        k = k + 1
        m = k * 2 - 1
        b1 = Mid(Arab, Arab_cd, 1)
        n = b1 + 1
        b2 = Mid(z2, n, 1) '取数值大写: 零壹贰叁肆伍陆柒捌玖
        b3 = Mid(z1, k, 1) '取币位符: 分角元拾佰仟万拾佰仟亿拾佰仟
        
        '以下主要处理"零"的出现
        If b2 = "零" Then
            If b3 = "元" Or b3 = "万" Or b3 = "亿" Then '去掉"元""万""亿"位上可能存在的"零"
                b2 = ""
            Else
                If b3 = "分" Then '如果分位为0,则让分位为"整"
                    b2 = "整"
                ElseIf b3 = "角" And MHdxrmb_head = "整" Then '如果"角""分"位均为"零",则让"角"位为空
                    b2 = ""
                End If
                '去掉"仟""佰""拾"位上遗留于"元""万""亿"字符前的"零"及一个以上的"零"
                If MHdxrmb_head = "零" Or MHdxrmb_head = "元" Or _
                    MHdxrmb_head = "万" Or MHdxrmb_head = "亿" Then
                        b2 = ""
                End If
                b3 = ""
            End If
        End If
        
        '去掉返回值中存在的"亿万"
        If Left(MHdxrmb, 1) = "万" And b3 = "亿" Then
            b3 = ""
        End If

       MHdxrmb = b2 + b3 + MHdxrmb
       Arab_cd = Arab_cd - 1
       MHdxrmb_head = Left(MHdxrmb, 1)
    Loop
'返回值 MHdxrmb 即为所提供数据之人民币大写,为文本格式。
End Function

TA的精华主题

TA的得分主题

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

你的档案我已经帮你加上一段“VBA”可以运行了!

至于“文件格式”请自己调整!

4nhc5m6R.rar (10.23 KB, 下载次数: 159) [em08][em08]

TA的精华主题

TA的得分主题

 楼主| 发表于 2003-6-5 08:18 | 显示全部楼层
各位高手,可否告诉我怎样在我需要的地方加上VBA语言,就是如何COPY已经编好的VBA语言程序,我试了几次都不行,最好讲详细一些.谢了!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 07:38 , Processed in 0.048062 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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