P
列に "H"を含む文字列を含むすべての行を削除しようとしています。ただし、マクロは動作するたびに必要な行の半分だけを削除します。これは、コード内にFor
ループがあるためです。行が削除されると、次の行は削除されたものと同じi
の値を持ち、Next i
によってスキップされます。VBA:部分文字列を検索して行全体を削除する
Dim LastRow As Long
'Finds last row
With ActiveSheet
LastRow = .Cells(.Rows.count, "P").End(xlUp).Row
End With
'Iterates through rows in column B, and deletes the row if string contains "H"
For i = 4 To LastRow
If InStr(1, Range("P" & i), "H") <> 0 Then Rows(i).EntireRow.Delete
Next i
'Message Box when tasks are completed
MsgBox "Complete"
行がすべての行を取得するために削除された場合For
ループは同じi
値を繰り返さ持っている方法はありますか?
ありがとうございます!それは働くようになった。 – MTJ