搜索文本并在之后添加文本
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
我的文档包含以下贯穿始终的文本格式:
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