当在word中用插入→符号→编号→壹、贰、叁、肆..时,可以将小写数字转换为大写数字。
比如12345会转换为壹萬贰仟叁佰肆拾伍,但是我们平时要的大写金额一般是壹万贰仟叁佰肆拾伍。
也就是繁体的萬字要改成简体的万字。
其实通过插入→符号→编号→壹、贰、叁、肆.. 这个动作是添加了一个域代码,并添加了格式开关。域代码如下:
{ = 12345 \* CHINESENUM2 }
无论怎么修改域代码,都无法将繁体的萬字要改成简体的万字,因为域代码会自动更新。
为此,可以使用如下的vba代码来实现:
Sub QQ1722187970() Dim oDoc As Document Dim oRng As Range Dim oField As Field Set oDoc = Word.ActiveDocument For Each oField In oDoc.Fields With oField '先解锁,让域代码自动更新结果 .Locked = False '然后更新结果 .Update Debug.Print .Code '返回域代码的结果对象为Range对象 Set oRng = .Result '******其它域对象的操作代码*****' '更改域代码的显示结果 oRng.Text = VBA.Replace(oRng.Text, "萬", "万") '锁定所有的域,使其不自动更新 .Locked = True End With Next End Sub
它的实现原理是把域代码的结果中的繁体萬字替换成简体的万字,然后再将域代码锁定,使其不能自动更新。
发表评论