Excel 2010 VBA:使用 Range.Find() 时如何保存/缓存查找参数?

发布于 2024-11-17 15:58:58 字数 311 浏览 0 评论 0原文

我以前也这样做过,但已经很多年了。采取这段代码:

Set Find = r.Find(Text, LookIn:=xlFormulas, lookat:=xlWhole)

这在我拥有的宏中运行。问题是,当我使用 CTRL+F 进行常规查找时,我的宏代码中使用的参数会被保存。我通常喜欢在单元格内容中搜索,而不是像上面的代码那样搜索整个单元格。每次打开查找窗口时,扩展查找选项并取消选中“匹配整个单元格内容”有点痛苦。

我以前所做的是将当前查找设置保存到变量中,运行 .Find(),然后将参数设置回原来的值,但我无法弄清楚。

I've done this before, but it's been many years. Take this code:

Set Find = r.Find(Text, LookIn:=xlFormulas, lookat:=xlWhole)

This runs in a macro I have. The problem is that when I go to do a regular find with CTRL+F, the parameters used here in my macro code are saved. I normally like to search within the cell contents, not the whole cell like what the above code does. It's a bit of a pain to expand the find options and uncheck "Match entire cell contents" every time I open the find window.

What I used to do was save the current find settings to a variable, run .Find(), then set the parameters back to what they were, but I can't figure it out.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

那伤。 2024-11-24 15:58:58

在代码结束时,当您完成需要做的事情时,只需将其设置回来:

Set Find = r.Find(Text, LookIn:=xlValues, lookat:=xlPart)

At the end of your code, when you're done what you need to do, just set it back:

Set Find = r.Find(Text, LookIn:=xlValues, lookat:=xlPart)
同展鸳鸯锦 2024-11-24 15:58:58

来自 msdn 文章

备注
每次使用此方法时都会保存 LookIn、LookAt、SearchOrder 和 MatchByte 的设置。如果下次调用该方法时未指定这些参数的值,则将使用保存的值。设置这些参数会更改“查找”对话框中的设置,而更改“查找”对话框中的设置会更改在省略参数时使用的已保存值。为了避免出现问题,请在每次使用此方法时显式设置这些参数。

我从未听说过任何检索和恢复“查找”对话框设置的方法。

我猜这些是 find 函数实现中的静态参数,实际上没有外部位置可以获取当前值。不影响查找功能的最佳选择是尝试使用“匹配”来重新实现当前功能。

From the msdn article:

Remarks
The settings for LookIn, LookAt, SearchOrder, and MatchByte are saved each time you use this method. If you don’t specify values for these arguments the next time you call the method, the saved values are used. Setting these arguments changes the settings in the Find dialog box, and changing the settings in the Find dialog box changes the saved values that are used if you omit the arguments. To avoid problems, set these arguments explicitly each time you use this method.

I've never heard of any method of retrieving and restoring Find dialog settings.

I'm guessing these are static parameters in the find function implementation and there's actually no external place where you can get the current values. Your best bet for not impacting the find function is to try using "Match" to re-implement your current functionality.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文