【发布时间】:2020-07-03 16:25:29
【问题描述】:
场景
我有一个用户表单,除了其他自动化工作之外,它上面的按钮还可以使用 MatchCase = True 进行搜索。每当此用户窗体处于活动状态并且我尝试在其他打开的工作簿中进行一些搜索时,始终会勾选匹配大小写。每次我需要在此用户窗体处于活动状态时手动取消选中 Excel 中的匹配大小写。请看图片
当用户表单不显示时
显示用户表单时
问题
有什么方法可以让我使用 MatchCase = True 运行宏,但同时打开其他工作簿并按 Ctrl+F Matchcase 默认未选中?换句话说,如何在搜索宏执行后删除搜索关键字和搜索条件?我正在使用以下搜索代码并将搜索词作为变量worD
Selection.Find(What:=worD, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False).Activate
【问题讨论】:
-
为什么不使用 matchcase:=false (以及您想要记住的任何其他内容)对任何内容(星号)进行虚拟查找操作?正如您所注意到的,一些 find 参数在上次使用时被“记住”了。
-
对于用户表单,我必须使用
Match case = True和LookAt:= xlWhole进行精确搜索。问题是,用户仍然需要手动打开其他 Excel 工作簿并进行搜索,而无需精确搜索。在当前情况下,由于宏正在执行区分大小写的搜索,因此在执行后打开的其他工作簿也默认显示 match case true with search history -
但似乎只有way
-
没有。某些 Range.Find 参数会在上次使用时被记住。如果没有虚拟查找操作,您只能关闭 excel 并重新打开它。