我正在 Word 中编写一个宏,用于用映射定义替换一些文本。
我想为用户提供对每次替换进行确认的选项,就像默认的查找和替换一样。
如何将焦点放在找到的文本上?如何将特定部分滚动到视图中?
我需要使用自定义 VBA 代码(而不是默认的查找和替换),因为我必须在读取映射后处理文档。
我已经能够替换文本,并向用户显示警报。但是,我想在显示警报时将重点放在文本上。
当前代码:
Do While myRange.Find.Execute( _
FindText:=dict.Items()(i) & " (" & Word & ")", _
MatchCase:=False, _
MatchWholeWord:=True _
)
myRange.Select
If MsgBox("Replace '" & myRange.Find.Text & "' with '" & Word & "'?", vbYesNo) = vbYes Then
myRange.Text = Word
End If
myRange.Start = myRange.Start + Len(myRange.Find.Text)
myRange.End = cached
Loop
ps 我打开了一个自定义表单/对话框,从中运行宏;所以文本在对话框后面。
编辑:根据 Jay 的回复,我再次检查了 Find & Replace 对话框的行为。对话框会根据文本的位置移动。当我在文本上有一个表单和一个确认对话框时,我可以达到同样的效果吗?