当在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
它的实现原理是把域代码的结果中的繁体萬字替换成简体的万字,然后再将域代码锁定,使其不能自动更新。


发表评论