VBAを使用してワークシートのデータを修正しようとしましたが、残念ながら次のコードが正しく動作していません。 基本的に列Aにはテキストがあり、列Aが「Pit」(「Pit」は含まず、「Pit」のみ)の場合は行全体を削除します。何らかの理由でコードが行を削除するだけで、他の行は削除しないので、スクリプトを何度か実行して、すべての "Pit"を取り除かなければなりません。削除する行と削除しない行の間には明確な違いはありません。すべてのテキストは空白ではありません。&列Aのテキストが異なる数千もの行があります。ここでコードは、私は非常に任意の提案に感謝します。VBA削除行が正しく動作しない
Sub Pitdelete()
Dim lastrow As Long
Dim datasheet As Worksheet
Dim i As Long
Set datasheet = Worksheets("DefCatCou")
lastrow = datasheet.Range("a" & datasheet.Rows.Count).End(xlUp).Row
For i = 2 To lastrow
If datasheet.Cells(i, 1) = "Pit" Then
datasheet.Rows(i & ":" & i).EntireRow.delete
End If
Next i
End Sub
ありがとうございます!
解決策はSO [docs]にあります(https://stackoverflow.com/documentation/excel-vba/1576/common-mistakes/11796/deleting-rows-or-columns-in-a-loop#t= 201707100805060985475)がすでにインストールされています。 –
[Excel for VBA for forループで行を削除すると重複する可能性があります](https://stackoverflow.com/questions/43454139/excel-vba-deleting-rows-in-a-for-loop-missesrows) –