Excel VBA保存/恢复上次搜索词

时间:2016-06-28 15:26:52

标签: excel-vba find vba excel

在Excel VBA中使用Cells.Find方法时,有没有办法保存/恢复最后一个(用户定义的)搜索词?

示例:

  • 用户正在使用查找对话框(CTRL-F)搜索“ foo ”。
  • 稍后他只需按CTRL-F和ENTER即可重复搜索。 (搜索词仍然存在。)
  • 如果宏使用Cells.Find 搜索“ bar ”,搜索字词将被替换
  • 现在用户不能再简单地重复搜索“ foo ”,因为查找对话框以“ bar ”作为搜索词开头。

也许用户甚至忘记了他上次搜索的是哪个单词或数字?在这种情况下,对话框中的旧搜索词将非常有用。

我的Word解决方案很简单:

' // Save the last user defined search term.
strSearchTermBackup = Selection.Find.Text

With Selection.Find
    .Text = "bar"
    [...]
End With

' // Restore the last user defined search term.
Selection.Find.Text = strSearchTermBackup

不幸的是,这在Excel中似乎无法实现。我只得到编译器错误,例如“ argument not optional ”。

我在这里想念一些非常简单的东西吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

你可能正在重新发明轮子......

Find & Replace对话框为您存储历史记录。只需单击文本输入框右侧的下拉箭头即可。用户可以抓住几个有价值历史的搜索执行。

enter image description here