【发布时间】:2014-09-05 11:15:14
【问题描述】:
我在一堆列上有一个标准过滤器,我想阅读过滤器标准。在选择超过 2 个标准的情况下,这并不是真正的问题。我有一排不同的字符串,我希望能够获得用户选择的标准。目前我正在使用这段代码:
Set ws = Worksheets(actSheet)
For Each flt In ws.AutoFilter.Filters
If flt.On = True Then
criterias = criterias & flt.Criteria1 & ", "
criterias = criterias & flt.Criteria2 & ", "
End If
Next flt
这只让我有机会获得最多 2 个标准。 我在不同的论坛找到了这行代码,但它被用于其他原因,我真的不知道如何为我使用这段代码:
ActiveSheet.AutoFilter Field:=1, Criteria1:=Array(param1, param2, param3,...) _
Operator:=xlFilterValues
这样你可以设置我认为的标准,但我想得到它。 有什么想法可以使用此代码吗?或者我的问题的另一个建议?
提前致谢!
编辑:
好吧,我已经为此工作了很多小时,但仍然没有解决方案。实际上不可能在数组中获取 Criteria1 中的数组。始终相同的错误“无法分配给数组”。虽然我之前将相同的数组分配给了 Filter Criteria1 10 行代码...
所以这行得通:
Dim arr(3) As String
arr(2) = "test1"
arr(1) = "test2"
arr(3) = "test3"
ActiveSheet.Range("A1:C1").AutoFilter Field:=1, Criteria1:=arr, Operator:=xlFilterValues
但这不是:
arr = ws.AutoFilter.Filters.Criteria1
【问题讨论】:
标签: excel vba filter autofilter