Excel VBA – 从单列filter删除多个值的行

我已经编写了基于单列filter的单一input值删除行的代码,我想编辑这个来处理来自同一列filter的多个input值。

数据库的标题在A4:Z上。

Option Explicit Sub Test() Dim ws As Worksheet Dim lastRow As Long Dim rng As Range Dim myValue As Variant 'set sheet reference Set ws = ActiveSheet 'turn off autofilter ws.AutoFilterMode = False 'get last row lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 'set range to filter Set rng = ws.Range("A4:Z" & lastRow) 'get user input myValue = InputBox("Periods to delete?") 'set filter rng.AutoFilter Field:=8, Criteria1:=myValue 'delete visible rows rng.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete 'show remaining rows by removing autofilter ws.AutoFilterMode = False End Sub 

input框目前只有一个时间段(月份号码)。 我希望它能像'2,3,4'一样取多个值。 这会删除2(feb),3(3月),4(4月)。

真的不知道下一步该做什么,我还是个新手。

尝试用此replace自动filter行。 它假设值是在input框中input,用逗号分隔。 它将它们转换成一个数组。

 rng.AutoFilter Field:=8, Criteria1:=Array(Split(myValue, ",")), Operator:=xlFilterValues