
数字小写
-
2023年3月19日发(作者:面板数据分析)Word中数字金额小写“变”大写有两招
在日常的办公应用中,尤其是作为一名财务人员,经常需要输入大写金额的形式的数字,“肆仟叁佰五拾元零伍
分”,如果用手工输入的话,显得比较麻烦,其实只要通过输入小写数字并通过如下两招就能达到快速输入的目的。
第一招:釜底抽薪——自动更正法
如果需要重复的输入一个大写数字金额,可以采用自动更正的方法。例如要重复输入“肆仟叁佰伍拾元零
伍分”,可以先输入“肆仟叁佰伍拾元零伍分”并选中它,然后执行菜单“工具→自动更正选项”打开“自动更
正”对话框(图1),在“替换”下的框内输入“4350.05”并单击“添加”按钮确定后退出,以后直接输入
“4350.05”后回车即可快速得到“肆仟叁佰伍拾元零伍分”。
第二招:一劳永逸——编制自动宏
如果有许多小写金额要变成大写的话,用上面的自动更正的方法需要定义很多自动更正项,显然也比较麻
烦,其实只需要编辑一个宏就能做到“一劳永逸”了。启动Word后按下Alt+F11组合键,在打开的工程窗口左侧
双击“ThisDocument”进入代码编写窗口,在代码编辑窗口中输入如下代码:
OptionExplicit
Sub小写金额变大写()
DimNumericAsCurrency,IntPartAsLong,DecimalPartAsByte,MyFieldAsField,LableAsString
DimJiaoAsByte,FenAsByte,OddmentAsString,OddAsString,MyChineseAsString
ConstZWDXAsString="壹贰叁肆伍陆柒捌玖零"'定义一个中文大写汉字常量
OnErrorResumeNext'错误忽略
WithSelection
Numeric=((.Text),2)'四舍五入保留小数点后两位
'判断是否在表格中
ation(wdWithInTable)Then_
.MoveRightunit:=ghtunit:=wdCharacter
'对数据进行判断,是否在指定的范围内
(Numeric)>2147483647ThenMsgBox"数值超过范围!",_
vbOKOnly+vbExclamation,
"Warning":ExitSub
IntPart=Int((Numeric))'定义一个正整数
Odd=(IntPart=0,"","元")'定义一个STRING变量
'插入中文大写前的标签
Lable=(Numeric=(Numeric),"人民币金额大写:","人民币金额大写:负")
'对小数点后面二位数进行择定
DecimalPart=((Numeric)-IntPart)*100
SelectCaseDecimalPart
CaseIs=0'如果是0,即是选定的数据为整数
Oddment=(Odd="","",Odd&"整")
CaseIs<10'<10,即是零头是分
Oddment=(Odd"","元零"&(ZWDX,DecimalPart,1)&"分",_
(ZWDX,DecimalPart,1)&"分")
Case10,20,30,40,50,60,70,80,90'如果是角整
Oddment="元"&(ZWDX,DecimalPart/10,1)&"角整"
CaseElse'既有角,又有分的情况
Jiao=(CStr(DecimalPart),1)'取得角面值
Fen=(CStr(DecimalPart),1)'取得分面值
Oddment=Odd&(ZWDX,Jiao,1)&"角"'转换为角的中文大写
Oddment=Oddment&(ZWDX,Fen,1)&"分"'转换为分的中文大写
EndSelect
'指定区域插入中文大写格式的域
SetMyField=.(Range:=.Range,Text:="="&IntPart&"*CHINESENUM2")
'选定域(最后是用指定文本覆盖选定区域)
'如果仅有角分情况下,Mychinese为""
MyChinese=("零",,"")
.Text=Lable&MyChinese&Oddment
EndWith
EndSub
人民币金额大写:
输入完毕后按下Alt+Q键返回word中,以后只需要依次选中需要转换的小写金额后,按下Alt+F8打开宏对话框,
选择“小写金额变大写”宏(图2),并单击“运行”即可快速地得出大写金额。运行该宏可以在选定的文本数据
后面插入此金额大写,如果选定范围在表格中,则在右侧单元格中插入金额大写
出处:/simple/?