过滤表帮助/ Excel VBA

时间:2017-11-30 20:31:07

标签: arrays excel vba excel-vba

我正在尝试使用存储在工作表中的列中的整数值来过滤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

1 个答案:

答案 0 :(得分:1)

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

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

因此绕过了设置特殊变量的需要。