我正在尝试使用存储在工作表中的列中的整数值来过滤excel中的表。表中存在整数值,因此我不必担心按不存在的值进行过滤。我使用了记录宏应用程序,发现excel使用:
更新表 Sheets("TEST_QUERY").ListObjects("SPC_QUERY").Range.AutoFilter Field:=4, Criteria1:= Array("4", "5"), Operator:=xlFilterValues
我遇到的问题是我有一个循环,它可以为我提供存储在名为FILTERS的变体中的数组值。变量以相同的格式存储数组中的值(显示所有引号和逗号)。 当我用数组(FILTERS)替换数组(“4”,“5”)时,它不会过滤。 我感谢任何帮助。
到目前为止代码..
Dim filters As String
Dim filters2 As Variant
Dim cel As Range
For Each cel In Range("HOD_Temp[Row Labels]")
filters = cel.Value
filters = filters & """" & cel.Value & """" & ","
Next cel
filters2 = Left(filters, Len(filters) - 1)
Sheets("TEST_QUERY").Activate
Sheets("TEST_QUERY").ListObjects("SPC_QUERY").Range.AutoFilter Field:=4, Criteria1:= _
Array(filters2), Operator:=xlFilterValues
答案 0 :(得分:1)
经过评论中的一些讨论后,决定将其简化为
Sheets("TEST_QUERY").ListObjects("SPC_QUERY").Range.AutoFilter Field:=4, Criteria1:= _
Application.Transpose(Range("HOD_Temp[Row Labels]")), Operator:=xlFilterValues
因此绕过了设置特殊变量的需要。