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
因为问题范围扩大和更新,所以他的答案被删除了。他提出了一个准确而有用的真实答案。向他致以最诚挚的敬意和感谢。并选择自动过滤器