在 Microsoft Excel 中,当我使用CTRL+搜索时F,默认情况下它仅在当前工作表中搜索。
我如何将其设置为默认在整个工作簿中搜索?我有Office 2010
。这可能吗?是否可以为特定工作簿或工作表设置此功能?如果需要,我可以编辑注册表。
笔记:近 10 年后,我仍然想这样做,但现在是针对 Excel 2016/2019。
答案1
您可以使用 ThisWorkbook 模块中的 Workbook_Open 宏执行此操作,如下所示:
Private Sub Workbook_Open()
Application.CommandBars.FindControl(ID:=1849).Execute
SendKeys "%(h){DOWN}{ENTER}{ESC}"
End Sub
这会为您所在的工作簿的会话进行设置。
要将其始终设为默认设置,您需要创建一个个人宏工作簿。
注:原始答案中的旧内容:SendKeys "%(t)%(h)W~{ESC}"
答案2
我做了一些修改,所以如果你的 Excel 是西班牙语的(像我的一样),它就可以工作了
Private Sub Workbook_Open()
Dim lCountryCode As Long
lCountryCode = Application.International(xlCountryCode)
Application.CommandBars.FindControl(ID:=1849).Execute
Select Case lCountryCode
Case 34 'spanish
SendKeys "%(p)%(D)L~{ESC}"
Case Else 'default english
SendKeys "%(t)%(h)W~{ESC}"
End Select
End Sub
答案3
选择主页功能区中的“查找/选择”图标
单击“查找”
点击右下角的“选项”框
左侧有一个下拉菜单,上面写着“在…之内”
选择“工作表”或“工作簿”
这网站解释了如何更改默认
答案4
我遇到过类似的问题。我的工作簿中有一个按钮。如果单击该按钮,我希望 Excel 打开“查找”对话框,并且已选择“在所有工作簿中搜索”选项,而不是默认的“在工作表内搜索”,无论如何。
此外,我希望无论选项是隐藏还是显示,也无论是否有人手动更改,按钮都能正常工作。这很棘手,因为 Excel 默认不会在启动时显示选项,但如果有人之前显示过这些选项,它会记住并在下次再次显示它们。
为了确保按键有效,我们需要一系列按键来设置设置,而不管初始状态如何。经过一番尝试,我终于找到了一个有效的方法。
这是我针对英文版 Excel 的代码,对于其他语言,您必须相应地更改键。
Sub Commanbutton_Click()
Cells(1, 1).Select
SendKeys "^f", True
SendKeys "{TAB 15}"
SendKeys " ", True
SendKeys "%t%t", True
SendKeys "{TAB 2}", True
SendKeys "{DOWN}{DOWN}{ENTER}", True
SendKeys "%t%t", True
End Sub
您可以手动尝试一下:
按 CTRL+F 进入查找对话框,按 TAB 15 次,以便进入“选项”或“在...内搜索”下拉菜单。
按空格键并
1) 显示选项或 2) 下拉菜单被激活但什么也没发生
按两次 Alt+T 将光标重置到查找输入框
按两次 TAB,无论如何它都会带您进入下拉菜单中的搜索(因为前面的步骤确保选项确实显示了!)
按两次向下箭头选择“工作簿”,然后按 ENTER 键选择
按两次 ALT+T 可将光标再次重置到查找输入框。
希望这能帮助其他遇到类似问题的人。谷歌搜索了很多次,结果却告诉我无法使用 VBA 预先选择“在所有工作簿中搜索”,但这种方法有效!
为了使其适用于不同的语言,您需要检查语言并使用 CASE 切换到具有适当快捷方式的正确例程。