我正在尝试使用通配符查找并替换字符串,然后在另一个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代替。