0
単一の列フィルターのSINGLE入力値に基づいて行を削除するコードを作成しました。これを編集して同じ列フィルター。Excel VBA - 単一の列フィルターから複数の値の行を削除する
データベースのヘッダーは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
入力ボックスは現在1つの期間(月番号)をとります。私はそれが '2,3,4'のように複数の値を取るようにしたい。これは2(feb)、3(3月)、4(4月)を削除します。
本当に次に何をするのかわからない、私はまだvbaの新書です。
ありがとうございます! –
本当に申し訳ありませんが、コードがこのような値をキャッチする方法はありますか?「16m1-16m5」?何もしていないようです。 –
セパレータがコンマではなくハイフンであることを意味する場合は、2番目の分割パラメータをハイフンに変更します。 – SJR