数组自动过滤中的倒置条件不起作用

这是我的第一个问题,所以我正在尽力遵守规则。

我已经尝试修改一个适用于单个stringvariables的自动筛选代码。 工作代码是:

Dim fruitName As String fruitName = Range("Fruit[Fruit_Name]")(2) ActiveSheet.ListObjects("allFruit").Range.AutoFilter Field:=1, Criteria1:="<>" & fruitName 

现在我想执行一个类似的行动,但有2个或更多的select水果。 search后,我发现我可以存储从我创build的命名范围水果的select,在一个变种数组,并在条件中使用它。

 Dim FruitNames() As Variant FruitNames = Range("ChosenFruitNames") ActiveSheet.ListObjects("allFruit").Range.AutoFilter Field:=1, Criteria1:= chosenFruitNames 

通过上面的代码,自动filter的标准工作正常。 但是,如果我想过滤没有被选中的水果的表,它将无法正常工作。 我已经尝试使用以下Criteria1:="<>" & chosenFruitNames但我得到了一个

Complile错误:types不匹配

我花了几个小时寻找一个解决scheme,但我只find数组标准的例子,但不是我需要的具体<>。 以下是我正在使用的代码。

 Dim FruitNames() As Variant FruitNames = Range("chosenFruitNames") ActiveSheet.ListObjects("allFruit").Range.AutoFilter Field:=1, Criteria1:="<>" & chosenFruitNames Rows("3:3").Select Range(Selection, Selection.End(xlDown)).Select Selection.Delete Shift:=xlUp 

任何帮助,将非常感激。 非常感谢提前Nasos

未经testing ,但请尝试一下:

 Dim arr() As Variant Dim i As Long Dim count As Long count = Range("chosenFruitNames").Count ReDim arr(1 to count) For i = 1 to UBound(arr) arr(i) = Range("chosenFruitNames")(i).Value Next i ActiveSheet.ListObjects("allFruit").Range.AutoFilter Field:=1, Criteria1:=arr, Operator:=xlFilterValues