Hmm, I wonder if you tried that yourself?So, one possible solution could be:
Sub Macro1()
For Each cell In Worksheets("Sheet1").Range("H:H")
If cell.Value = 0 Then
rowSelected = cell.Row
Rows(rowSelected).Select
Selection.Delete Shift:=xlUp
End If
Next
End Sub
For the future, you can restrict the range to only those rows down to the last one with data like this. Then if there are only 50 rows of data, you only have to cycle through that many - a huge saving.Yes, I know it will take a certain amount of time, but as the OP doesn't give a Range, it was safer for me to check the entire row.
Dim rng As Range, cell As Range
Set rng = Range("H1", Range("H" & Rows.Count).End(xlUp))
For Each cell In rng
'Do something
Next cell