在他的许多工作表上,Roy广泛使用排序和过滤。

在功能区的“数据”选项卡上的“排序和过滤器”组中,有一个“清除”工具。此工具清除所有过滤和排序设置。 Roy通常需要清除过滤设置,但他希望自己的排序设置不受清除影响。他想知道是否存在一种方法可以更改此工具的行为方式或仅清除一次操作中的过滤设置。

这是一个有趣的研究问题,需要一些戳戳和刺探。看来,Excel允许您定义应用于数据集的筛选器的排序设置。要查看实际效果,请按照以下步骤操作:

。打开其中包含一些数据的工作簿,或创建包含可以排序和筛选的数据的工作簿。

。在数据中选择一个单元格。

。显示功能区的“数据”选项卡。

。单击“排序和过滤器”组中的“过滤器”工具。 Excel将下拉箭头放置在数据中每一列的顶部。

。单击其中一列顶部的下拉箭头。

请注意,出现的下拉菜单允许您选择要在列中过滤的数据。不过,这是人们通常停止看的地方。有趣的是,在下拉菜单的顶部有一些排序控件。如果使用这些控件,则会根据您的规范过滤Excel显示的过滤结果。

如果此时打开宏记录器(应用包括排序的过滤器之后)并单击“清除”工具,则这是Excel记录的宏:

Sub Macro1()

' ' Macro1 Macro '

'     ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort.SortFields.Clear     ActiveSheet.ShowAllData End Sub

请注意,记录的宏中有两行。第一行清除排序设置,第二行清除所有过滤设置。如果您在未首先在列顶部的下拉过滤菜单中选择排序设置的情况下记录了相同的步骤,则Excel将不包括第一行。

这样做的结果是,您可以轻松创建自己的单行宏,该宏删除所有过滤,但保留通过过滤下拉列表进行的所有排序设置。简单的宏看起来像这样:

Sub ClearFilter()

ActiveSheet.ShowAllData End Sub

应该注意的是,如果关闭筛选(通过再次单击“筛选”工具单击),Excel会自动清除您可能已应用的所有筛选和排序设置。如果要在过滤框架之外保留排序设置(尤其是复杂的排序设置),则最好记录一个宏以进行数据排序。

注意:

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

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

本技巧(12254)适用于Microsoft Excel 2007、2010、2013和2016。