为什么这个VBA代码((子的初始部分)修改了Word文档中的可见选择?我没有修改任何选择。根据MSDN描述:
“如果你从Range对象获得了Find对象,那么 找到符合查找条件的文本后,选择不会更改, 但是Range对象被重新定义。 (摘自:Find Object (Word))
所以下面的代码应该只修改Range,而不会影响选择...
Sub SelectTarget() Dim MyRange As Range
Set MyRange = Selection.Range With MyRange.Find 'Searches for _AM or _PM (_ is a space) .ClearFormatting .MatchWildcards = True .Text = " [AP]M" .Execute End With
这是一个文档的屏幕截图,其中选择了一些文本(我称之为可见选择):
但是使用F8逐步执行代码可以看到在.Execute
行之后,文档中的可见选择消失,文本背景全部为白色,根本没有选择,甚至没有插入点。
我尝试在代码中输入Replacement.Clearformatting
和Replace = ""
行,以防止先前的查找/替换干扰,但它不会改变任何内容......
有任何想法吗?
答案 0 :(得分:1)
我不确定为什么将MyRange设置为选择范围而不是选择范围,但也许Word认为这两者是同义词。尝试
Set MyRange = Selection.Range.Duplicate
因此,对MyRange的更改根本不会影响Selection.Range。