vba - 如何通过 Word vba range.find 设置焦点
问题描述
我正在 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 对话框的行为。对话框会根据文本的位置移动。当我在文本上有一个表单和一个确认对话框时,我可以达到同样的效果吗?
解决方案
代码中已经存在的语句 myRange.Select 将选择放在找到的文本上,如果它不在屏幕上,则将其滚动到视图中。但是,如果选择隐藏在自定义表单(用户表单?)或消息框后面,那将无济于事。如果您可以确定选择相对于屏幕坐标的位置,则可以将表单移开。
推荐阅读
- html - 为什么 IntelliJ 不能识别 svg 元素的 viewBox 属性?
- python - django 表单打印选择值
- c++ - CUDA 高效 nd-array(tensor) 切片
- python - 使用 python 从 HDF5 文件加载大型数据集
- android - Intent.putExtra(键,值)不起作用
- java - 将数据从片段传递到另一个片段。片段未附加到上下文
- javascript - 如何添加超过 1 个模态框?
- html - 如何让文本的两边对齐
- javascript - Meteor js,React 自定义图像重定向/meteor WebApp
- ios - 如何在 Swift 中删除部分的所有行