使用数组用于自动筛选条件

时间:2017-06-17 03:23:01

标签: excel excel-vba autofilter vba

我有以下代码,它将根据第I列中的条件删除行:

Sub Strip()
    Dim rng As Range

    With ActiveSheet
        .Columns("I").AutoFilter Field:=1, Criteria1:="=70-79%", VisibleDropDown:=False
        Set rng = .AutoFilter.Range
    End With
    If rng.Columns("I").SpecialCells(xlCellTypeVisible).Count - 1 > 0 Then
        Application.DisplayAlerts = False
        rng.Offset(1, 0).SpecialCells(xlCellTypeVisible).Delete
        Application.DisplayAlerts = True
    End If
    rng.AutoFilter
End Sub

我希望以这种方式采用100个不同的标准。我宁愿不必重复这段代码100次,所以有人能告诉我如何以数组的形式对其进行编码吗?我尝试了各种方法,但似乎无法让它工作。

1 个答案:

答案 0 :(得分:4)

使用

.Columns("I").AutoFilter Field:=1, Criteria1:=MyArray,  Operator:=xlFilterValues

其中MyArray是字符串数组

示例

Dim MyArray(1 To 4) As String

MyArray(1) = "This"
MyArray(2) = "is"
MyArray(3) = "an"
MyArray(4) = "array"

'
'~~> Rest of code
'

.Columns("I").AutoFilter Field:=1, Criteria1:=MyArray, Operator:=xlFilterValues

'
'~~> Rest of code
'

<强>截图

enter image description here