【发布时间】:2013-04-12 17:45:05
【问题描述】:
我有一张表,我想按其中一列中的值过滤行。用于过滤的值存储在一个单独的列中,而不是在表中。这是我目前所拥有的:
Dim table1 As ListObject
Dim range1 As Range
Set range1 = ActiveSheet.range("AM23:AM184")
'get table object
table1.range.AutoFilter Field:=3, Criteria1:=???
我不知道该为标准 1 设置什么。我知道它需要是一个数组,我可以将其设置为类似 Array("12","2","13") 但我需要它等于 range1 给出的范围内指定的值。任何帮助将不胜感激。
编辑:通过执行 range1.Value 然后将 Variant 转换为字符串数组,我已经能够将我的范围值放入一个数组中。这没有按我的意愿工作,因为它只是将我的过滤器设置为数组中的最后一个值。例如,如果我的数组包含 ID(“12”、“44”、“13”、“22”)并且我将 Criteria1 设置为该数组并运行它,则过滤器只选择了 22 个,而所有其他数字都被取消选择,包括12、44 和 13。
【问题讨论】:
-
您是否尝试过记录自动过滤器以获取一些示例代码?
-
是的,我在上面得到了类似的代码,但它只是将一个 Array 对象放入 Criteria1 中,并将我取消选择的值作为 Array 对象中的条目
-
我不知道如何手动执行上述操作是问题
标签: excel excel-2010 vba