Excel 默认按列查找,而不是按行查找

Excel 默认按列查找,而不是按行查找

在 Excel 中使用特定工作簿时,我希望默认FindSearch By Columns,而不是By Rows(这似乎是不可变的默认值)。

如果我手动进行更改,该更改Find Options将在整个 Excel 过程中保留。我如何以编程方式设置该选项?

Excel 查找/替换窗口

答案1

不幸的是,似乎没有 Excel 设置或注册表编辑允许您自定义默认的查找行为。显而易见的是,查找行为设置会根据活动的 Excel 实例或会话进行记忆 - 也就是说,只要 Excel 处于打开状态,一旦您更改查找设置,它就会被记住。您可以利用这一事实,编写一个小型 VBA 宏,在 Excel 启动时立即进行搜索。此查找可以通过查找对话框或 VBA cells.find 方法在 VBA 代码中执行。需要注意的是,某些设置(如“在”工作簿/工作表中)似乎无法通过 VBA 配置。我认为可以通过 VBA 设置按行/列进行的“搜索”,但我不是 100% 确定。

如果您搜索“excel 默认查找和替换设置”,则会在多篇文章中介绍此解决方案的逐步实施,例如:

https://excelribbon.tips.net/T008802_Changing_Default_Search_Settings.html

本文没有提及如何让宏在每次打开任何工作簿时执行。为此,您必须将宏添加到 personal.xlsb 文件中。personal.xlsb 的使用已在多个在线资源(包括 Microsoft 直接提供的资源)中介绍。为方便起见,请参阅本文:

https://www.myonlinetraininghub.com/create-a-personal-macro-workbook-personal-xlsb

答案2

以下宏将Find在后台设置默认值 -此处记录了论点

Sub SetFindByColumns()
    Dim c As Range
    Set c = Cells.Find(What:="", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns)
End Sub

在模块中定义之后,在对象中添加以下调用ThisWorkbook将在工作簿打开时立即触发它:

Private Sub Workbook_Open()
    SetFindByColumns
End Sub

相关内容