Arrays 筛选表帮助/Excel VBA

Arrays 筛选表帮助/Excel VBA,arrays,vba,excel,Arrays,Vba,Excel,我正在尝试使用存储在工作表列中的整数值筛选excel中的表。整数值存在于表中,因此我不需要担心按不存在的值进行过滤。我使用了record宏应用程序,发现excel通过以下方式更新表格: Sheets(“TEST\u QUERY”).ListObjects(“SPC\u QUERY”).Range.AutoFilter字段:=4,Criteria1:=Array(“4”,“5”),运算符:=xlFilterValues 我的问题是,我有一个循环,它可以给我数组值,我存储在一个称为过滤器的变量中。变

我正在尝试使用存储在工作表列中的整数值筛选excel中的表。整数值存在于表中,因此我不需要担心按不存在的值进行过滤。我使用了record宏应用程序,发现excel通过以下方式更新表格:

Sheets(“TEST\u QUERY”).ListObjects(“SPC\u QUERY”).Range.AutoFilter字段:=4,Criteria1:=Array(“4”,“5”),运算符:=xlFilterValues

我的问题是,我有一个循环,它可以给我数组值,我存储在一个称为过滤器的变量中。变量在数组中以相同的格式存储值(显示所有引号和逗号)。 当我用数组(过滤器)替换数组(“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

在评论中经过一些讨论后,决定将其简化为:

Sheets("TEST_QUERY").ListObjects("SPC_QUERY").Range.AutoFilter Field:=4, Criteria1:= _
    Application.Transpose(Range("HOD_Temp[Row Labels]")), Operator:=xlFilterValues

因此无需设置特殊变量。

我不清楚
过滤器
变量是否是数组(在这种情况下,为什么要使用
数组(过滤器)
,为什么不只使用
过滤器
),或者它是否是类似
“4”、“5”的字符串变量。
(在这种情况下,这只是一个元素,而不是两个字符串
“4”
“5”
)最好是在问题中包含用于设置过滤器尺寸的代码以及用于为其赋值的代码。过滤器变量不是数组,我知道我使用变量的方式是一个字符串。我是否需要按每个逗号拆分字符串并将其存储在名为n的数组中ew_数组,然后使用该数组进行过滤?这是一种可能的方法,但如果您发布生成
过滤器的代码,则可以以更简单的方式完成。我使用用于创建字符串的循环更新了我的帖子