2016-05-31 33 views
1

ホワイトリストと一致するマクロを作成し、ホワイトリストにないものをすべて削除します。私は次のコードを持っています:VBAホワイトリスト - ホワイトリストと照合して特定の範囲を削除します

Sub WHITELIST() 

Dim LR As Long, i As Long 
With Sheets("Sheet1") 
LR = .Range("A" & Rows.Count).End(xlUp).Row 
For i = LR To 1 Step -1 
If IsError(Application.Match(.Range("A" & i).Value, Sheets("Whitelist").Columns("A"), 0)) Then .Rows(i).Delete 
Next i 
End With 
End Sub 

私のコードは行全体を削除します。私は範囲A:Bを削除し、セルをシフトしたい(行サイズは可変なので、最後の行までチェックしたい - 最大40.000行まで)。重要なデータが削除されないことも重要です。ここではマクロがどのように動作するかを例です。

enter image description here

ホープ誰かが

挨拶

答えて

0

はこのラインにこの

If IsError(Application.Match(.Range("A" & i).Value, Sheets("Whitelist").Columns("A"), 0)) _ 
Then .Range("A" & i & ":B" & i).Delete Shift:=xlUp 

If IsError(Application.Match(.Range("A" & i).Value, Sheets("Whitelist").Columns("A"), 0)) _ 
Then .Rows(i).Delete 

を変更してみてください私を助けることができます

これは、あなたが定義する範囲内でそれらの特定のセルを削除し、その範囲の最大下のセルのブロック全体を移動できるようになりますShift:=xlUpを使用columns AとB

のセルを削除します。

関連する問題