在打印输出上显示过滤条件(Microsoft Excel)
Microsoft Excel包含一些出色的工具,可帮助您筛选大数据表以仅包含要显示的信息。实际上,过滤器使您可以“切片和切块”数据,直到获得所需的数据为止。
当打印出过滤数据时,您可能想知道对原始数据进行了哪些切片和切块。您可以通过多种方式显示过滤条件。一种简单的方法是使用Excel的高级筛选功能,这要求您为数据设置一个小的标准表。如果将标准表作为打印内容的一部分,则可以轻松查看过滤条件。
如果使用自动筛选,则需要使用其他方法。 John Walkenbach的网站中详细介绍了一种这样的方法:
http://j-walk.com/ss/excel/usertips/tip044.htm
此解决方案使用用户定义的函数来返回当前列中使用的所有过滤条件。可以在该列的单元格中使用该功能以显示条件。如果您使用的是高级过滤,那么宏方法会稍微复杂一些。下面的宏(清单中有两个)检查正在使用的高级标准,然后将这些标准放在标题的左侧。
Sub AddFilterCriteria() Dim strCriteria As String strCriteria = FilterCriteria() If strCriteria = "" Then strCriteria = "No Filtering Criteria" Else strCriteria = "Filter Criteria:" & Chr(10) & strCriteria End If ' add Criteria string to Header/Footer With ActiveSheet.PageSetup .LeftHeader = strCriteria End With End Sub Function FilterCriteria() As String Dim rngCriteria As Range, col As Range, cel As Range Dim strCriteria As String, r As Integer, c As Integer Const strCriteriaRange As String = "Criteria" FilterCriteria = "" On Error Resume Next 'Set Criteria-Range reference Set rngCriteria = Range(strCriteriaRange) If Err <> 0 Then Exit Function On Error GoTo 0 ' Create Criteria String c = 0 For Each col In rngCriteria.Columns c = c + 1 ' CriteriaRange Columns r = 1 ' CriteriaRange Rows For Each cel In col.Cells If r = 1 Then strCriteria = strCriteria & "Criteria" _ & c & " (" & cel.Value & ") = " Else strCriteria = strCriteria & "'" & cel.Value & "'" If IsEmpty(cel.Offset(1, 0)) Then 'Add New row Char if not Last Criteria Column If c < rngCriteria.Columns.Count Then strCriteria = strCriteria & Chr(10) End If Exit For End If strCriteria = strCriteria & " " End If r = r + 1 Next cel ' next criteria row Next col ' next criteria column FilterCriteria = strCriteria End Function
要使用该宏,只需在设置高级筛选后运行AddFilterCriteria宏即可。宏读取条件表,然后将条件放到左侧标头中的字符串中。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(3248)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: