Excel 什么是表过滤标准?(作为从表的列标题下拉列表中选择的值之一或数组)
我有一个具有多个列的表,该表具有自动筛选功能 我的一个专栏,有一个月自动过滤,它接受了下面的代码Excel 什么是表过滤标准?(作为从表的列标题下拉列表中选择的值之一或数组),excel,vba,Excel,Vba,我有一个具有多个列的表,该表具有自动筛选功能 我的一个专栏,有一个月自动过滤,它接受了下面的代码 ActiveSheet.ListObjects("Salary").Range.AutoFilter Field:= _ Application.WorksheetFunction.Match("Mounth", Range("Salary[#Headers]"), 0), _ Criteria1:="=09" 有时我需要给该列的筛选条件值赋值给变量。所以总是不知道什么是过滤值 当
ActiveSheet.ListObjects("Salary").Range.AutoFilter Field:= _
Application.WorksheetFunction.Match("Mounth", Range("Salary[#Headers]"), 0), _
Criteria1:="=09"
有时我需要给该列的筛选条件值赋值给变量。所以总是不知道什么是过滤值
当然,用户可以从表格标题菜单下拉列表中选择多个项目,如下所示:
ActiveSheet.ListObjects("Salary").Range.AutoFilter Field:= _
Application.WorksheetFunction.Match("Mounth", Range("Salary[#Headers]"), 0), _
Criteria1:="=09", Operator:=xlOr, Criteria2:="=08"
如何捕获数组中的所有选定值,或者确定选定值是否唯一并将其分配给同一个变量?可用于获取筛选器值:
Dim list As ListObject, colIndex As Long, filter As Filter
Set list = ActiveSheet.ListObjects("Table1")
If list.ShowAutoFilter = False Then Exit Sub ' filters are not on
colIndex = list.ListColumns("Month").Index
Set filter = list.AutoFilter.filters(colIndex)
If filter.On = False Then Exit Sub ' no filter
Select Case filter.Operator
Case 0: Debug.Print filter.Criteria1 ' no operator
Case xlOr: Debug.Print filter.Criteria1, filter.Criteria2
Case xlValues: Debug.Print Join(filter.Criteria1) ' array
Case Else: Debug.Print filter.Operator, filter.Criteria1, filter.Criteria2 ' handle the rest of the operators
End Select
因为问题范围扩大和更新,所以他的答案被删除了。他提出了一个准确而有用的真实答案。向他致以最诚挚的敬意和感谢。并选择自动过滤器