资源描述:
《word中数字金额小写“变”大写有两招》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Word中数字金额小写“变”大写有两招在日常的办公应用中,尤其是作为一名财务人员,经常需要输入大写金额的形式的数字,“肆仟叁佰五拾元零伍分”,如果用手工输入的话,显得比较麻烦,其实只要通过输入小写数字并通过如下两招就能达到快速输入的目的。 第一招:釜底抽薪——自动更正法 如果需要重复的输入一个大写数字金额,可以采用自动更正的方法。例如要重复输入“肆仟叁佰伍拾元零伍分”,可以先输入“肆仟叁佰伍拾元零伍分”并选中它,然后执行菜单“工具→自动更正选项”打开“自动更正”对话框(图1),在“替
2、换”下的框内输入“4350.05”并单击“添加”按钮确定后退出,以后直接输入“4350.05”后回车即可快速得到“肆仟叁佰伍拾元零伍分”。 第二招:一劳永逸——编制自动宏 如果有许多小写金额要变成大写的话,用上面的自动更正的方法需要定义很多自动更正项,显然也比较麻烦,其实只需要编辑一个宏就能做到“一劳永逸”了。启动Word后按下Alt+F11组合键,在打开的工程窗口左侧双击“ThisDocument”进入代码编写窗口,在代码编辑窗口中输入如下代码:OptionExplicitSub小
3、写金额变大写() DimNumericAsCurrency,IntPartAsLong,DecimalPartAsByte,MyFieldAsField,LableAsString DimJiaoAsByte,FenAsByte,OddmentAsString,OddAsString,MyChineseAsString ConstZWDXAsString="壹贰叁肆伍陆柒捌玖零" '定义一个中文大写汉字常量 OnErrorResumeNext '错误忽略 WithSelecti
4、on Numeric=VBA.Round(VBA.Val(.Text),2) '四舍五入保留小数点后两位 '判断是否在表格中 If.Information(wdWithInTable)Then_.MoveRightunit:=wdCellElse.MoveRightunit:=wdCharacter '对数据进行判断,是否在指定的范围内 IfVBA.Abs(Numeric)>2147483647ThenMsgBox"数值超过范围!",_
5、 vbOKOnly+vbExclamation,"Warning":ExitSub IntPart=Int(VBA.Abs(Numeric)) '定义一个正整数 Odd=VBA.IIf(IntPart=0,"","元") '定义一个STRING变量 '插入中文大写前的标签 Lable=VBA.IIf(Numeric=VBA.Abs(Numeric),"人民币金额大写: ","人民币金额大写: 负") '对小数点后面二位
6、数进行择定 DecimalPart=(VBA.Abs(Numeric)-IntPart)*100 SelectCaseDecimalPart CaseIs=0 '如果是0,即是选定的数据为整数 Oddment=VBA.IIf(Odd="","",Odd&"整") CaseIs<10 '<10,即是零头是分 Oddment=VBA.IIf(Odd<>"","元零"&VBA.Mid(ZWDX,DecimalPart,1)&"分",_
7、 VBA.Mid(ZWDX,DecimalPart,1)&"分") Case10,20,30,40,50,60,70,80,90 '如果是角整 Oddment="元"&VBA.Mid(ZWDX,DecimalPart/10,1)&"角整" CaseElse '既有角,又有分的情况 Jiao=VBA.Left(CStr(DecimalPart),1) '取得角面值 Fen=VBA.Right(CStr(
8、DecimalPart),1) '取得分面值 Oddment=Odd&VBA.Mid(ZWDX,Jiao,1)&"角" '转换为角的中文大写 Oddment=Oddment&VBA.Mid(ZWDX,Fen,1)&"分" '转换为分的中文大写 EndSelect '指定区域插入中文大写格式的域 SetMyField=.Fields.Add(Range:=.Range,Text:="="&IntPart&"*CHINESENUM2")