花点时间显示“查找和替换”对话框的“查找”选项卡。最简单的方法是按Ctrl + F。第一次显示对话框时(请参见图1),Excel对要搜索的内容进行某些假设。您要搜索的内容取决于“内部”下拉列表的设置。 (您可能需要单击“选项”按钮以查看“内部”下拉列表。)

image

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

首次显示对话框时,默认情况下,“内部”设置为“工作表”。无论在显示对话框之前选择一个工作表还是多个工作表,此设置都为true。

如果希望“内部”下拉列表默认为“工作簿”(而不是“工作表”),则无法在Excel中进行指定。您可以放心,“内部”下拉列表的设置对于使用Excel的当前会话是持久的。换句话说,如果将其设置为“工作簿”,请完成搜索,然后再进行另一次搜索,则“内部”设置将保持不变;仍设置为工作簿。

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

Sub ShowFind1()

Application.Dialogs(xlDialogFormulaFind).Show End Sub

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

有一种方法可以显示正确的“查找和替换”对话框,但不能使用“对话框”集合。相反,您需要使用CommandBars集合拉起对话框,该集合实际上是使用菜单命令显示对话框的。 (如果考虑一下,这很具有讽刺意味-Excel不再具有菜单,但是您仍然可以访问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培训的来源。

本技巧(10348)适用于Microsoft Excel 2007和2010。您可以在以下版本的Excel的较旧菜单界面中找到此技巧的版本: