VBA MS-Word:是否可以用通配符替换文本?

时间:2016-01-11 08:11:15

标签: vba ms-word

是否可以替换使用通配符找到的文本并将其替换为通配符?例如FindText:="(^13{2}*^13)", Forward:=True, MatchWildcards:=True,然后将其替换为通配符,例如replacewith:="(^13{2}*^11)"。有可能吗?

2 个答案:

答案 0 :(得分:1)

评论中的整个讨论尚不清楚,但我知道您只需要替换部分搜索字词,并保留另一部分。是的,可以通过在搜索字词中定义表达式来实现。例如:

查找:"(^ 13 {2} *)^ 13" 替换:\ 1 ^ 11

使用括号定义表达式。您可以在"查找"中找到多个表达式。文本。请参阅表达式并让Word在替换时使用反斜杠+索引,其中index是查找文本中表达式的数量(位置)。在上面的例子中,取自你的问题,有一个表达式,所以\ 1。

答案 1 :(得分:-1)

我不是一个单词开发人员,但只是这样做,不是完整的解决方案,而是一个很好的起点??? :文字是“内森测试内森测试”

        dim x as find    

    Selection.WholeStory

            Set x = Selection.Find
 x.Find.ClearFormatting
            x.Find.Replacement.ClearFormatting
            With x
                .Text = "Na*han"
                .Replacement.Text = .Text
                .Forward = True
                .Wrap = wdFindAsk
                .Format = False
                .MatchCase = False
                .MatchWholeWord = False
                .MatchAllWordForms = False
                .MatchSoundsLike = False
                .MatchWildcards = True
            End With

            x.Execute
            x.Execute Replace:=wdReplaceOne