A1中为阿拉伯数字
B1公式=TEXT(A1,"[dbnum1]") 转中文小写
B1公式=TEXT(A1,"[dbnum2]") 转中文大写
更好的转换需要用自定义函数
1.按Alt+F11打开vba编辑器,新建模块,粘贴下面的代码
Function Daxie(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>1,"零","")))
C = IIf(F<1,"整",Application.Text(Round(F,0),"[DBNum2]") &"分")
Daxie=IIf(Abs(M)<0.005,"",IIf(M<0,"负" &A &B &C, A & B & C))
End Function
2.在B1中公式=daxie(A1)
假如"金额"在单元格A2
则在大写单元格中输入以下公式:
=IF(ABS(A2)<0.005,"",IF(A2<0,"负",)&IF(INT(ABS(A2)),TEXT(INT(ABS(A2)),"[dbnum2]")&"元",)&IF(INT(ABS(A2)*10)-INT(ABS(A2))*10,TEXT(INT(ABS(A2)*10)-INT(ABS(A2))*10,"[dbnum2]")&"角",IF(INT(ABS(A2))=ABS(A2),,IF(ABS(A2)<0.1,,"零")))&IF(ROUND(ABS(A2)*100-INT(ABS(A2)*10)*10,),TEXT(ROUND(ABS(A2)*100-INT(ABS(A2)*10)*10,),"[dbnum2]")&"分","整"))
假如不是在A2单元格,则将公式中的"A2"替换成目标单元格!
选中单元格,单击右键-设置单元格格式-数字-分类:下选择“特殊”-右边的“类型:”下有“中文小写数字”“中文大写数字”,你选择你要的类型-确定
选择要进行大小写转换的单元格,设置单元格为"特殊","中文大写数字"
如果你要把小写转换为大写,操作步骤:格式---单元格--数字---特殊---中文小写字母 你在你设置的单元格中输入小写会自动变为大写的