Jim希望有一种方法可以快速判断在AutoFilter中应用了哪些过滤条件。他很难分辨哪一列应用了过滤器(下拉箭头颜色从黑色到蓝色的细微变化很难察觉),因此,告诉其他应用过滤器的方法也不错。

过滤后的列中的黑色和蓝色下拉箭头之间缺乏对比度并不是常见的抱怨。实际上,这个问题在另一版_ExcelTips_中得到了解决。 (在这方面,您可以在_ExcelTips_网站上搜索短语“下拉箭头颜色”,以获取方便的提示。)

如果您实际上想知道对列应用了什么条件,那么您会对一个小的宏感兴趣,该宏会将条件放入另一个单元格:

Function DispCriteria(Rng As Range) As String     Dim Filter As String

Filter = ""

On Error GoTo Done     With Rng.Parent.AutoFilter         If Intersect(Rng, .Range) Is Nothing Then GoTo Done         With .Filters(Rng.Column - .Range.Column + 1)

If Not .On Then GoTo Done             Filter = .Criteria1             Select Case .Operator                 Case xlAnd                     Filter = Filter & " AND " & .Criteria2                 Case xlOr                     Filter = Filter & " OR " & .Criteria2             End Select         End With     End With Done:

DispCriteria = Filter End Function

这实际上是您可以在工作表中使用的用户定义函数。例如,如果您想知道应用于列C的过滤条件,则可以在单元格中使用以下内容:

=DispCriteria(C:C)

如果愿意,可以只引用要过滤的列的标题单元格。例如,如果标题(自动过滤器向其添加下拉箭头的标题)是单元格C3,则可以使用以下内容:

=DispCriteria(C3)

该功能显示的条件是自动筛选实际使用的条件。例如,如果使用的过滤条件为“前10名”,则Excel会将其应用时转换为“> = 214.3281932”(该值会因数据而异)。它是DispCriteria函数返回的公式化筛选器,而不是“前10个”措词。

该功能基于Microsoft MVP Stephen Bullen创建的功能。

该宏已在各个地方发布,您可以在John Walkenbach的网站上找到它:

http://www.j-walk.com/ss/excel/usertips/tip044.htm

注意:

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

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

本技巧(2891)适用于Microsoft Excel 97、2000、2002和2003。