当显示“查找和替换”对话框的“查找”选项卡时(按Ctrl + F是最简单的方法),Excel会对您要搜索的内容做出某些假设。 (请参见图1。)要搜索的内容取决于“内部”下拉列表的设置。首次显示“查找和替换”对话框时,默认情况下,“内部”设置为“工作表”。无论在显示对话框之前选择一个工作表还是多个工作表,此设置都为true。

image

图1.“查找和替换”对话框的“查找”选项卡。

如果希望“内部”下拉列表默认为“工作簿”(而不是“工作表”),则无法在Excel中进行指定。您可以放心,“内部”下拉列表的设置对于使用Excel的当前会话是持久的。换句话说,如果将其设置为Workbook,请完成搜索,然后显示“查找和替换”对话框的“查找”选项卡,然后“框内”仍设置为Workbook。

有趣的是,乍一看,似乎无法使用宏解决此问题。这是因为Excel无法为宏提供一种轻松显示和修改“查找和替换”对话框中的设置的方法。使用“对话框”集合可以显示许多对话框,但不能显示“查找和替换”。相反,VBA允许您使用以下代码显示“查找”对话框的较旧版本:

Sub ShowFind1()

Application.Dialogs(xlDialogFormulaFind).Show End Sub

不幸的是,此版本的“查找”对话框没有控件,允许您指定搜索范围,可以使用“查找和替换”对话框的“查找”选项卡中的“内部”下拉列表来完成。

有一种方法可以显示正确的“查找和替换”对话框,但不能通过使用“对话框”集合来显示。相反,您需要使用CommandBars集合拉起对话框,该集合实际上是使用菜单命令显示对话框的。方法如下:

Sub ShowFind2()

ActiveSheet.Cells.Find What:="", LookAt:=xlWhole     Application.CommandBars("Worksheet Menu Bar").FindControl( _       ID:=1849, recursive:=True).Execute End Sub

使用Find方法可以在“查找和替换”对话框中设置不同的参数,然后访问CommandBars对象以实际显示对话框。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3170)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: