我的文档包含以下文本格式:
5:43-64
我想搜索和替换,以便文本如下所示:
5:43-64 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
这不是我想要的。
答案 0 :(得分:2)
您不需要使用vba来执行此查找替换,您可以使用简单的通配符查找替换来执行此操作。
按CTRL + H,找到(-<*>)
,替换为\1 indicates:
(请务必选中&#34;使用通配符&#34;)
如果您确实想使用vba:
Selection.Find.ClearFormatting
With Selection.Find
.Text = "(-<*>)"
.Replacement.Text = "\1 indicates:"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll