Answers:
您可以使用ThisWorkbook模块中的Workbook_Open宏来执行此操作,如下所示:
Private Sub Workbook_Open()
Application.CommandBars.FindControl(ID:=1849).Execute
SendKeys "%(t)%(h)W~{ESC}"
End Sub
这将为您所在的工作簿的会话设置它。
要使它始终是默认设置,您需要创建一个Personal Macro Workbook。
我进行了修改,因此如果您的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
在主页功能区中选择“查找/选择”图标
点击查找
点击右下角的“选项”框
左侧有一个下拉菜单,显示为“在...内”
选择“表格”或“工作簿”
该站点说明了如何更改默认值
我有一个类似的问题。我在工作簿中有按钮。如果单击该按钮,我希望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十五次,以便您进入“选项”或“内部搜索”下拉菜单。
按空格键,或者
1)显示选项,或2)下拉菜单被激活,但没有任何反应
按两次Alt + T将光标重置到“查找”输入框
两次按TAB键,无论如何都将带您在下拉列表中进行搜索(因为前面的步骤确保实际上显示了这些选项!)
按两次向下箭头以选择“工作簿”,然后按ENTER选择
按ALT + T两次,将光标再次重置到“查找”输入框。
希望这可以帮助其他有类似问题的人。很多Google追踪人士只告诉我,无法使用VBA预先选择“在所有工作簿中搜索”,但是这种方法有效!
要使其与不同的语言一起使用,您需要检查语言并使用CASE来使用适当的快捷方式切换到适当的例程。