根据问题,尝试替换
形式的Word文档中的文本范围 "<start>..........<end>"
可变长度。它只会在文档中出现一次。
答案 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答案的评论,但这里的代表不够。