Excel使用变量使用数组过滤数据

时间:2015-07-20 17:00:25

标签: excel-vba filter vba excel

美好的一天。

以下代码可以满足我的需求,即正确过滤我的数据。

ActiveSheet.Range("$A$1:$AV$791").AutoFilter Field:=5, Criteria1:=Array( _
        "Delta", "Ladner", "Tsawwassen"), Operator:=xlFilterValues

但是,我想使用变量来改变和过滤不同的城市。 以下代码为我提供了附带的字符串。

cityStr = """Delta""" & ", " & """Ladner""" & ", " & """Tsawwassen"""
returns the string:  "Delta", "Ladner", "Tsawwassen"

但是当我将变量放入filter语句时,它什么也没做。如果我在cityStr周围使用引号也没关系 - 两者都不起作用。

ActiveSheet.Range("$A$1:$AV$791").AutoFilter Field:=5, Criteria1:=Array( _
    cityStr), Operator:=xlFilterValues

有关如何在数组中使用变量的任何建议吗?

由于 莱斯

1 个答案:

答案 0 :(得分:3)

它想要一个数组,所以给它一个数组

Sub test()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim rng As Range
Set rng = ws.Range("A1:A10")
Dim CityStr() As Variant
CityStr() = Array("Delta", "Ladner", "octopus")
rng.AutoFilter field:=1, Criteria1:=CityStr(), Operator:=xlFilterValues
End Sub

声明变量数组,用字符串填充它,并将其用作criteria1。我认为你必须使用变种kb