ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] [原创]中文小写转阿拉伯数字自定义函数

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-7-28 22:00 | 显示全部楼层
本帖已被收录到知识树中,索引项:自定义函数开发
向你学习了,感谢

TA的精华主题

TA的得分主题

发表于 2014-7-28 23:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
若能支持小数,中文混和就完美了

TA的精华主题

TA的得分主题

发表于 2014-7-29 08:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wzsy2_mrf 发表于 2014-7-28 16:41
再调用下面的转化函数,那么无论什么整数都可以处理:

请作个附件贴上来好吗?
谢谢!

TA的精华主题

TA的得分主题

发表于 2014-7-29 09:18 | 显示全部楼层
少如 发表于 2014-7-29 08:19
请作个附件贴上来好吗?
谢谢!

大小中文数字,阿拉伯数字任你混写,没有什么不能转。附件如下:

TA的精华主题

TA的得分主题

发表于 2014-7-29 09:21 | 显示全部楼层
附件如下:

测试.zip

12.59 KB, 下载次数: 80

TA的精华主题

TA的得分主题

发表于 2014-7-29 10:55 | 显示全部楼层
wzsy2_mrf 发表于 2014-7-29 09:21
附件如下:

收列,  谢谢!

TA的精华主题

TA的得分主题

发表于 2014-8-4 21:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 wzsy2_mrf 于 2014-8-4 21:13 编辑

二叉递归计算混排数字
大小中文数字,阿拉伯数字任你混写,没有什么不能转。附件如下:



发错地方了。

二叉递归计算混排数字.zip

12.62 KB, 下载次数: 63

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-8 20:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wzsy2_mrf 发表于 2014-7-28 16:39
先将数据用下面代码进行标准化处理:

嗯,这种思路很不错,兼容性很强!

TA的精华主题

TA的得分主题

发表于 2014-9-11 07:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wzsy2_mrf 发表于 2014-7-29 09:21
附件如下:

有没有一个简单版的?直接转0-999范围的数字
网上找到一个阿拉伯数字转中文小写的:(想反过来转,纯中文小写转阿拉伯数字)

Function ToChin(Num As String) As String

    Const Snum As String = "零一二三四五六七八九十"

    Dim L As Integer, I As Integer, S As String, N As Integer

    L = Len(Num)

    If L > 3 Then

        MsgBox "数字 " & Num & " 超出三位数范围。", vbOKOnly, "错误提示"

        Exit Function

    End If

    N = L

    For I = 1 To L

        S = Mid(Num, I, 1)

        If N = 3 Then

            ToChin = ToChin & Mid(Snum, Val(S) + 1, 1) & "百"

        ElseIf N = 2 Then

            If S <> "0" Then

                If S = "1" And L = 2 Then

                    ToChin = ToChin & "十"

                Else

                    ToChin = ToChin & Mid(Snum, Val(S) + 1, 1) & "十"

                End If

            Else

                If Mid(Num, I + 1, 1) <> "0" Then

                    ToChin = ToChin & Mid(Snum, Val(S) + 1, 1)

                End If

            End If

        Else

            If S <> "0" Or S = "0" And L = 1 Then

                ToChin = ToChin & Mid(Snum, Val(Mid(Num, I, 1)) + 1, 1)

            End If

        End If

        N = N - 1

    Next I

End Function

TA的精华主题

TA的得分主题

发表于 2014-9-11 07:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
时光鸟 发表于 2013-6-16 12:16
这个使用面是比较窄,我也是在网上找了好久没找到好用的,才想着要自己写一个用

有没有简单版的,就是纯中文数字转成阿拉伯数字 0~999

网上找到一个阿拉伯数字转中文小写的:(想反过来转,纯中文小写转阿拉伯数字)

Function ToChin(Num As String) As String

     Const Snum As String = "零一二三四五六七八九十"

     Dim L As Integer, I As Integer, S As String, N As Integer

     L = Len(Num)

     If L > 3 Then

         MsgBox "数字 " & Num & " 超出三位数范围。", vbOKOnly, "错误提示"

         Exit Function

     End If

     N = L

     For I = 1 To L

         S = Mid(Num, I, 1)

         If N = 3 Then

             ToChin = ToChin & Mid(Snum, Val(S) + 1, 1) & "百"

         ElseIf N = 2 Then

             If S <> "0" Then

                 If S = "1" And L = 2 Then

                     ToChin = ToChin & "十"

                 Else

                     ToChin = ToChin & Mid(Snum, Val(S) + 1, 1) & "十"

                 End If

             Else

                 If Mid(Num, I + 1, 1) <> "0" Then

                     ToChin = ToChin & Mid(Snum, Val(S) + 1, 1)

                 End If

             End If

         Else

             If S <> "0" Or S = "0" And L = 1 Then

                 ToChin = ToChin & Mid(Snum, Val(Mid(Num, I, 1)) + 1, 1)

             End If

         End If

         N = N - 1

     Next I

End Function
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-11 04:32 , Processed in 0.046262 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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