< 0 aa = "负" & Replace(Application.Text(Abs(aa), "[DBnum2]"),".","点") Case Is = 0 aa = "" End Select End If error: Exit Sub End Sub 说明:1 。
我说的代码实际上是用Execl自带的VBA编程语言编制的一个小程序 。这个程序在你打开工作表的时候已在后台准备运行,当工作表中某个单元格内容发生变化时马上运行 。
在程序运行中程序会自动判别,还在第一列的单元格中输入的小写数字都转换成中文大写,在其他单元格中输入的数字不转换大写 。程序是在后台运行的,在工作表窗口是看不见的,只能看见程序运行后的结果 。
在工作表的单元格中不能设置这些程序代码 。程序代码只能在VBA编码窗口中编制 。
打开VBA编程窗口的方法有好几种,这里只说一种 。在已打开的工作表中,右击您要转换中文大写的工作表标签,在弹出的菜单中选择查看代码,这时VBA编码窗口已打开 。
把上面的代码输入到代码窗口中 。当然可以用复制的方法把代码复制过去,这样不容易错 。
最后关闭代码窗口,自动回到工作表窗口 。这时你在A1中输入数字试试看,是否得到中文大写的效果 。
2 。在上面程序代码中,已设置为在工作表的第一列任何单元格中输入小写的数字都会马上转换成大写 。
其它单元格中输入的数据不会转换 。如想在其它列的单元格中转换数据,请修改第三行代码------Column = 1---- 中的数字 。
数字1代表第一列,数字2代表第二列,依次类推 。3 。
如果不考虑负数、零等情况的话,代码可以简化如下:Private Sub Worksheet_Change(ByVal aa As Range) If aa.Column = 1 Then aa = Replace(Application.Text(aa, "[DBnum2]"),".","点") End If End Sub 采用简化代码的情况下,输入的数字必须 >0,如果输入 <=0 的数字会有意想不到结果 。因为代码中没有处理0和<0数字的语句 。
请凉解 。五、上面的公式和程序代码只解决特定问题的,不要直接用于人民币大小写的转换 。
请多提意见!问题己解决 你用替换功能呀 。这个适合大批量的转换 。
没有这样的功能吧.这很容易呀,在Excel中就有这样的转换 。选择要转换的数据,或者先在单元格中进行设置,右键/设置单元格格式,选择数字选项卡,选择左边的分类为特殊,然后选择右边的类型为中文大写数字,确定即可 。
如此设置小数点的"."不能转换成"点". 在maya123215的回答的基础上,再“查找-替换”嘛,把“.”换成“点” 。maya123215老师用的方法: 右键->设置单元格格式->数字->特殊->数字中文大写 是最简单及常用的方法 由于单元格的内容仍然是数字 12.326,并非文本格式“壹拾贰点叁贰陆”,故miaowu老师提议用“查找-替换”嘛,把“.”换成“点”是不可行的 故我提议用以下的公式:假设A1是 12.326 在任何一格输入公式:=SUBSTITUTE(TEXT($A$1,"[DBNum2][$-804]G/通用格式"),".","点") 便会出现 壹拾贰点叁贰陆 由于中文大写主要是作金额,单位是 元/角/分 公式变成:=TEXT(INT(A1),"[DBNum2][$-804]G/通用格式")&"元"&IF((INT(A1*10)-INT(A1)*10)=0,"",TEXT(INT(A1*10)-INT(A1)*10,"[DBNum2][$-804]G/通用格式")&"角")&IF(INT(A1*100)-INT(A1*10)*10=0,"",TEXT(INT(A1*100)-INT(A1*10)*10,"[DBNum2][$-804]G/通用格式")&"分") 便会出现 壹拾贰元叁角贰分 注意: 此公式会将小数后第三个位舍去,如公式要求四舍五入进位,公式内所有 A1 要改成ROUND(A1,2),公式便要长很多 呵呵,很好用,但有一个问题,假如小数点后面出现零,就不正确了,如6968.05,就变成了:陆仟玖佰陆拾捌元伍分,但实际需要的是:陆仟玖佰陆拾捌元零伍分,如何实现 。
7.Excel中的金额怎么转换大小写1、首先在我们的电脑桌面上新建一个excel表格并点击它 。