[英]Excel VBA - Delete rows on multiple values from a single column filter
我已經編寫了刪除單個列過濾器中基於單個輸入值的行的代碼,我想對其進行編輯以處理來自同一列過濾器的多個輸入值。
數據庫的頭位於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
輸入框當前只包含一個句點(月數)。 我希望它采用多個值,例如“ 2,3,4”。 這將刪除2(2月),3(3月),4(4月)。
真的不確定下一步該怎么做,我還是vba的新手。
嘗試以此替換自動過濾器線。 假定值在輸入框中輸入,並以逗號分隔。 它將它們轉換為數組。
rng.AutoFilter Field:=8, Criteria1:=Array(Split(myValue, ",")), Operator:=xlFilterValues
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.