Word VBA如何查找和替换以“<start>”开头并以“<end>”结尾的字符串?</end> </start>

时间:2011-03-04 08:03:18

标签: vba ms-word

根据问题,尝试替换

形式的Word文档中的文本范围

"<start>..........<end>"

可变长度。它只会在文档中出现一次。

3 个答案:

答案 0 :(得分:7)

您可以使用Word的内置查找/替换功能来执行此操作,例如

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
   .Text = "\<start\>*\<end\>"
   .Replacement.Text = ""
   .Forward = True
   .Format = False
   .MatchCase = False
   .MatchWholeWord = False
   .MatchWildcards = True
   .MatchSoundsLike = False
   .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

这是通过简单地使用Word 2007录制宏并查看VBA代码而找到的。 .Text属性可以使用通配符,例如*[A-Z],类似于@ Jayantha的响应中提到的正则表达式。反斜杠包含在.Text属性中,因为<>也是通配符,而反斜杠则转义它们。在Word帮助文件中搜索“替换”。

答案 1 :(得分:0)

使用正则表达式,试试这个:

/start\\.*/end\

/替换为<,将\替换为上述正则表达式中的>

答案 2 :(得分:0)

如果您想使用正则表达式,则需要转到Tools|References并添加Microsoft VBScript Regular Expressions Libarary

我认为您可以将^<start>.*<end>$用于正则表达式。

这可能是对@ Jayantha答案的评论,但这里的代表不够。