【发布时间】:2015-06-26 12:38:48
【问题描述】:
我正在用 Visual Basic(呃,我知道)编写一个宏来解析 Microsoft Word 中的文档。这是我想要实现的工作流程:
- 在文档中搜索字符串(相当于
Edit > Find > Find...)。 - 询问用户是否要将匹配的字符串替换为另一个字符串(相当于
Edit > Find > Replace... > Replace,但在执行替换之前会显示确认对话框)。 - 如果是,请更换。如果没有,请转到下一场比赛。
我可以用Find.Execute method 进行查找和替换:
Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:="hi", _
ReplaceWith:="hello", Replace:=wdReplaceAll
但我不知道在执行替换之前如何提示用户。
【问题讨论】:
-
当用户使用 UI 执行查找/替换时,他将收到的唯一确认是 完成替换后(假设找到要查找的文本)。这可以使用
Application.DisplayAlerts属性进行切换。如果您想在替换文本之前显示一个对话框,您需要检查是否找到任何内容并循环显示如下结果:stackoverflow.com/a/14309412/1710577 -
另外,您是否希望确认文档中的每个 instance 文本字符串或找到的每个不同文本字符串?