在EXCEL中怎样将阿拉伯数字转化成中文?
如:13.06t转化成拾叁点零陆吨
13.56元转化成拾叁元伍角陆分
最佳答案 - 由投票者5个月前选出
这是我在别的地方复制过来的,希望对你能有所帮助。
问题:在Excel表格中,怎样将带小数点的小写数字转换成中文大写?
比如说在表格中输入12.326然后转换成中文大写"壹拾贰点叁贰陆.
在同一单元格中,再次输入不同的数字,中文大写也跟着变化
回答:
一、在输入的当前单元格直接转换,没有现成的格式函数。但通过VBA代码还是能够实现的。(VBA代码我在后面讲)
如果想简单一点的话,通过相玲单元格转换大写还是方便一点。
如果在A1输入小写,就在B1输入如下公式:
=IF(A1>0,SUBSTITUTE((TEXT(A1,"[DBnum2]")),".","点"),IF(A1<0,"负"&SUBSTITUTE((TEXT(ABS(A1),"[DBnum2]")),".","点"),""))
上面的公式中考虑了输入负数和零的问题,如不考虑负数和零,公式可以简化如下:
=IF(A1>0,SUBSTITUTE((TEXT(A1,"[DBnum2]")),".","点"),"")
二、如果你坚持要在输入数据的单元格中直接转换中文大写,只好用VBA程序代码了,只是比较烦。
代码如下:
PrivateSubWorksheet_Change(ByValaaAsRange)
OnErrorGoToerror
Ifaa.Column=1Then
SelectCaseaa
CaseIs>0
aa=Replace(Application.Text(aa,"[DBnum2]"),".","点")
CaseIs<0
aa="负"&Replace(Application.Text(Abs(aa),"[DBnum2]"),".","点")
CaseIs=0
aa=""
EndSelect
EndIf
error:ExitSub
EndSub
说明:
1。我说的代码实际上是用Execl自带的VBA编程语言编制的一个小程序。这个程序在你打开工作表的时候已在后台准备运行,当工作表中某个单元格内容发生变化时马上运行。在程序运行中程序会自动判别,还在第一列的单元格中输入的小写数字都转换成中文大写,在其他单元格中输入的数字不转换大写。程序是在后台运行的,在工作表窗口是看不见的,只能看见程序运行后的结果。在工作表的单元格中不能设置这些程序代码。程序代码只能在VBA编码窗口中编制。打开VBA编程窗口的方法有好几种,这里只说一种。在已打开的工作表中,右击您要转换中文大写的工作表标签,在弹出的菜单中选择查看代码,这时VBA编码窗口已打开。把上面的代码输入到代码窗口中。当然可以用复制的方法把代码复制过去,这样不容易错。最后关闭代码窗口,自动回到工作表窗口。这时你在A1中输入数字试试看,是否得到中文大写的效果。
2。在上面程序代码中,已设置为在工作表的第一列任何单元格中输入小写的数字都会马上转换成大写。其它单元格中输入的数据不会转换。如想在其它列的单元格中转换数据,请修改第三行代码------Column=1----中的数字。数字1代表第一列,数字2代表第二列,依次类推。
3。如果不考虑负数、零等情况的话,代码可以简化如下:
PrivateSubWorksheet_Change(ByValaaAsRange)
Ifaa.Column=1Then
aa=Replace(Application.Text(aa,"[DBnum2]"),".","点")
EndIf
EndSub
采用简化代码的情况下,输入的数字必须>0,如果输入<=0的数字会有意想不到结果。因为代码中没有处理0和<0数字的语句。请凉解。
五、上面的公式和程序代码只解决特定问题的,不要直接用于人民币大小写的转换。
参考资料
http://www.mywenda.cn/diannaoruanjian/30704.html