【发布时间】:2023-03-04 23:24:01
【问题描述】:
我正在 MS Word 中编写一个宏,它应该在文档中找到所有突出显示的文本并对每个文本执行一些操作。我正在计划一个循环来执行搜索和操作部分,并且这部分代码没有问题。
但我不知道如何找到需要多少次迭代。有没有办法确定 VBA 中高亮的数量?
非常感谢。
【问题讨论】:
我正在 MS Word 中编写一个宏,它应该在文档中找到所有突出显示的文本并对每个文本执行一些操作。我正在计划一个循环来执行搜索和操作部分,并且这部分代码没有问题。
但我不知道如何找到需要多少次迭代。有没有办法确定 VBA 中高亮的数量?
非常感谢。
【问题讨论】:
With ActiveDocument.Range.Find
.Highlight = True
While .Execute
Debug.Print .Parent.Text
Wend
End With
无需预先计算匹配数。您可以循环执行搜索,一旦没有更多匹配项,它将停止。
确保将搜索应用到文档的右侧。我使用了ActiveDocument.Range,但任何Range 对象都可以。也许更具体的东西更适合您的情况。
另外,检查Find 对象的许多其他属性并将它们设置为合理的值,这比使用默认值更好(没有人可以记住所有选项的所有默认值,加上Find 对象可能已经由一些较早的搜索设置)。
【讨论】:
Execute() 返回@987654327 @ 马上)。 ;) 或者我不明白你到底想要什么?
Execute() 搜索一次(在宏的开头)。它将返回 True 或 False。 True 表示,至少有一个亮点,False 表示你已经完成了。