【发布时间】:2012-07-14 02:00:14
【问题描述】:
我想在整个 MSWord 文档中搜索带有通配符的文本并恢复找到的字符串。
类似的东西:
Sub Macro1()
Dim c As Range
Set c = ActiveDocument.Contentsdf
c.Find.ClearFormatting
c.Find.Replacement.ClearFormatting
With c.Find
.Text = "start[abcde]end"
.Replacement.Text = ""
.Forward = True
.wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False '
End With
c.Find.Execute
While c.Find.Found
Debug.Print c.Find.TextFound
c.Find.Execute
Wend
End Sub
但方法c.Find.TextFound 不存在。有没有办法恢复文本而不重复到Selection.Text?
【问题讨论】:
-
您要搜索
*abcde*还是start*end? -
我想搜索以“start”开头、以“end”结尾并包含“a”、“b”、“c”、“d”、“e”字母的字符串中间。
-
你能举个例子吗?
start[a]end或start[asd]end或startaend或startasdend -
这里是一个例子:文档的正文是:“startAend startEend startFend startQend ...... startWend startAend”。我想搜索其中的一些(中间有字母“A”、“B”、“C”、“D”和“E”的那些)并恢复找到的字符串以便以后操作它们。
-
我知道这可以使用 Find.Text = "start[abcde]end" 来完成,并且我可以使用 Selection.Text 遍历找到的每个匹配项来恢复文本。但是我正在修改其他人通过 WIN32::OLE 使用 VBA 的 perl 编写的代码,并且我无法访问 Word.Selection 对象(我需要修改很多代码才能做到这一点),所以我想知道如果有任何方法可以恢复从 Find 对象中找到的文本。