我有以下代码,它将根据第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
次,所以有人能告诉我如何以数组的形式对其进行编码吗?我尝试了各种方法,但似乎无法让它工作。
答案 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
'
<强>截图强>