搜索文本并在之后添加文本

Search for text and add text after

我的文档包含以下贯穿始终的文本格式:

5:43-64

我想要搜索和替换,以便文本显示如下:

5:43-64 indicates:

幸运的是,-只出现在这种类型的文本中。 每个实例中的数字都会变化。所以我认为我不必担心一些复杂的搜索模式。我可以只搜索 - 字符。

然后我想获取 - 之后的任何内容,然后将其保存为变量,然后插入文本 indicates。我需要它遍历整个文档,在 -.

的任何出现时进行这些更改

这是我到目前为止的代码,它只工作了一半:

Sub placeWordAfterDash()

Selection.Find.ClearFormatting
With Selection.Find
   .Text = "-"
   .Forward = True
   .Wrap = wdFindContinue
   .Format = False
   .MatchCase = False
   .MatchWholeWord = False
   .MatchWildcards = False
   .MatchSoundsLike = False
   .MatchAllWordForms = False
End With

If Selection.Find.Execute Then
    Dim selectedString As String
    Selection.Select
    selectedString = Selection.Next(Unit:=wdWord, Count:=1).Text
    Selection.Text = "-" & selectedString & " indicates: "
End If

End Sub

这段代码只在一个实例中进行了更改,还给我留下了:

5:43-64 indicates: 64

这不是我想要的。

您不需要使用 vba 来执行此查找替换,您可以使用简单的通配符查找替换来完成。

按CTRL+H,找到(-<*>),替换为 indicates:(一定要勾选"Use Wildcards")


如果你想使用 vba:

Selection.Find.ClearFormatting
With Selection.Find
    .Text = "(-<*>)"
    .Replacement.Text = " indicates:"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll