删除所选文本中出现的所有字符串

时间:2016-01-20 00:21:55

标签: vba ms-word

我想删除所有出现的双括号,只包含所选文本块中的单词,而不是整个文档。在同一个选定的文本块中,我想找到三个特定字符串中的一个,删除字符串,然后插入字符串以前所在的选项卡。

我使用Record Macro函数来获取用于查找双括号出现次数和特定字符串的代码,但是一旦我删除找到的匹配项,选择就会更改,以便我无法再搜索我选择的原始字符串仅限文本块。

我的问题是如何将基本上4个搜索串联在一起 - 3个是由选项卡删除/替换的精确字符串,1是通配符搜索 - 所有4个搜索仅限于我选择的文本块开始执行宏。

1 个答案:

答案 0 :(得分:0)

Sub formattedtext()
Dim rng As Range
With ActiveDocument.Range
Set rng = Selection.Range
With rng.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = False
    .Text = "()"
    .Replacement.Text = ""
    .Execute Replace:=wdReplaceAll

End With
Set rng = Nothing
End With
End Sub

如果您指的是包含in the ((end)) it doesn't even matter.等字词的双括号,则可以替换

.MatchWildcards = False
.Text = "()"

.MatchWildcards = True
.Text = "\(\([A-Za-z 0-9α-ω,^13*.;:'"]{1,}\)\)"

这将匹配(())之间的任何单词。您可以替换.Text字符串中[]中的内容以符合您的需要。