メールの有効性チェックを行うための高速サブを作成しています。「E」列に「@」が含まれていない連絡先データの行全体を削除したいと考えています。以下のマクロを使用しましたが、Excel が削除後にすべての行を移動するため、動作が遅すぎます。
次のような別の手法を試しました。set rng = union(rng,c.EntireRow)
その後、範囲全体を削除しましたが、エラー メッセージを防ぐことはできませんでした。
また、各行を選択に追加するだけで実験し、すべてを選択した後(ctrl + selectのように)、その後削除しましたが、そのための適切な構文が見つかりませんでした。
何か案は?
Sub Deleteit()
Application.ScreenUpdating = False
Dim pos As Integer
Dim c As Range
For Each c In Range("E:E")
pos = InStr(c.Value, "@")
If pos = 0 Then
c.EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End Sub