VBA Word查找和替换为通配符 - 将节内容添加到变量中

时间:2017-02-15 21:15:15

标签: vba replace ms-word find

我正在尝试使用通配符查找并替换字符串,然后在另一个find and replace命令中使用搜索字符串的section标签的内容。这是代码中不起作用的部分;变量RT和Part不会被赋予部分的内容,而是分配标签本身。我还尝试在Selection.Find.Execute命令之后设置变量RT和Part。我是新手VBA程序员,所以这可能很明显,但原谅我。

Dim RT, Part As String
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "(:)([RV][0-9]{1,2})( )(*)(:)"
        .Replacement.Text = "\4"
        RT = .Replacement.Text
        Part = "\2"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = True
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
With Selection
    If .Find.Forward = True Then
        .Collapse Direction:=wdCollapseStart
    Else
        .Collapse Direction:=wdCollapseEnd
    End If
    .Find.Execute Replace:=wdReplaceOne
    If .Find.Forward = True Then
        .Collapse Direction:=wdCollapseEnd
    Else
        .Collapse Direction:=wdCollapseStart
    End If
End With

然后我想在另一个查找和替换中使用上面的变量,开头如下(我还没有包括下面的所有代码)。

With Selection.Find
    .Text = "(:)("&Part&")( :)"
    .Replacement.Text = RT

最终我在文档中有一个初始文本定义,如下所示:

:R1 XYZ:

:R2 ABC:

这些初始文本定义仅替换为XYZ或ABC,然后在文档中稍后是标记:

:R1:< - 我想用XYZ替换。
:R2:< - 我想用ABC代替。

0 个答案:

没有答案