2016-06-28 42 views
0

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

实施例:

  • 用户正在搜索 “FOO” 与查找对话框(CTRL-F)。
  • 稍后他可以通过简单地按下CTRL-F和ENTER来重复搜索。 (搜索条件依然存在。)
  • 如果宏使用Cells.Find搜索“酒吧”,该搜索词将被替换
  • 现在用户不能再简单地重复搜索“foo”,因为查找对话框以“”栏“作为搜索项开始。

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

我的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中是可能的。我得到只有编译器错误,如“参数不可选”。

我错过了这里很简单的东西吗?

在此先感谢

+0

用户后确实CTRL-F和excel选择找到的小区,activecell存储到一个变量? – findwindow

+0

你可以在Excel中显示你正在使用的代码吗?注意对象模型是不同的,'.Find'不是相同的语法。这很可能是您有的语法错误,但除非您可以显示您的代码,否则很难排除故障。 –

+0

感谢您的回答。但是存储活动单元格等对我来说并不是解决方案。因为问题不在我的程序运行时搜索某些内容。问题是一些宏在某些事件的后台运行。而令人不安的是CTRL-F显示错误的搜索字词,而用户不知道为什么。 – Futti

回答

0

您可以重新发明轮子...

Find & Replace对话框商店的历史给你的。只需点击文本输入框右侧的下拉箭头即可。用户可以抓取多个搜索执行历史记录。

enter image description here

+0

谢谢你指出这一点。我只是意识到,即使它显示为搜索词,automacro中的搜索词也不在历史记录中。所以它不像我想的那么糟糕。 – Futti