簡體   English   中英

Excel VBA-從單個列過濾器刪除多個值上的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM