首页 > 解决方案 > 用于查找先前在查找和替换中搜索过的单词的宏

问题描述

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

结束子

标签: vbams-wordfind

解决方案


将 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

推荐阅读