When you delete Excel rows in a loop, you should start looping from the end of range and move up. When using a traditional loop that starts from the start of the range and working your way down, you will miss deleting a row when there are consecutive rows to delete.
The code looks like this:
Sub DeleteRow()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
For i = 10 To 1 Step -1
If ws.Cells(i, 1).Value = "Delete" Then
ws.Rows(i).Delete
End If
Next i
End Sub