vba - 用于查找先前在查找和替换中搜索过的单词的宏
问题描述
Word 已删除右下角的浏览对象以向前/向后搜索当前搜索项。我试图找到它作为添加为快捷键的命令,但结果为空,所以我试图将宏写入/分配给快捷键以向后(向上)移动以查找当前搜索词。
例如,我搜索 Chelmsford,下面的代码将我在文档中向后(向上)发送到 Chelmsford 的实例。但是,当我搜索不同的单词时,比如 Margate,宏不会将 Chelmsford 更改为 Margate,因此任何反向搜索都只针对 Chelmsford 而不是 MArgate、Jane 或盆地,无论我当前正在搜索什么词。
我已经在网上搜索了可以进行反向搜索的编码,我在 Word 中找不到快捷键的命令,而且我看到的所有 vba 代码都是用于搜索 x 并将其替换为 Y
我想我需要做一个暗淡的编码,但我不知道如何编写它以使用 .Text = "" 搜索当前搜索词/短语是什么,即更改先前的搜索“Chelmsford ” 到新的搜索“马盖特”。
Selection.Find.ClearFormatting
With Selection.Find
.Text = "Chelmsford" <--- I want this text to change whenever the word changes in the find box--->
.Forward = False
.Wrap = wdFindAsk
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
结束子
解决方案
将 OP 的答案从评论移到答案字段,因为它对他有用。
Selection.Find.ClearFormatting
With Selection.Find
.Forward = False
.Wrap = wdFindAsk
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.Find.ClearFormatting
With Selection.Find
.Forward = True
.Wrap = wdFindAsk
Format = True
End With