如何使得word中的金额大写中的繁体萬字变成简体万字?

当在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

它的实现原理是把域代码的结果中的繁体萬字替换成简体的万字,然后再将域代码锁定,使其不能自动更新。

       

发表评论