数组自动过滤中的倒置条件不起作用
这是我的第一个问题,所以我正在尽力遵守规则。
我已经尝试修改一个适用于单个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