|
▼gin さん:
こんにちは〜
>しかし、何度もシートを開いてマクロを実行する為
>目まぐるしいですし時間もかかります。
については、すでにアドバイスのあるように Selectしない!方針で。
あと、
行削除は重い処理なので、できれば、一括して、削除でなく、
該当行をクリアすることで対応したい。
ということで、作業列を使って削除行を表の下方に集め、一括クリアする
方法をご紹介します。
Option Explicit
Sub Try1()
'Sheet1.A列削除リスト アドレス
Dim Address As String
With Worksheets(1)
Address = .Range("A1", .Cells(.Rows.Count, 1).End(xlUp)) _
.Address(1, 1, xlR1C1, True)
End With
'Sheet2.B列に数式書き込み
With Worksheets(2).Range("A1").CurrentRegion.Resize(, 2)
.Columns(2).FormulaR1C1 _
= "=IF(ISERROR(MATCH(RC[-1]," & Address & ",0)),False,1)"
'B列でソート
.Sort Key1:=.Columns(2), Header:=xlNo
'不要行をクリア (最低1行は該当行があるものと仮定)
.Columns(2).SpecialCells(xlCellTypeFormulas, xlLogical) _
.EntireRow.Clear
'B列をクリア
.Columns(2).Clear
End With
End Sub
|
|