Guten Morgen,
ich würde es in etwa so versuchen, das die Zeilen von unten nach oben durchlaufen werden ist Absicht, denn so sind eventtuell durch das löschen verschobene Zellen schon abgearbeitet und fallen nicht aus dem Raster
Sub Zero()
Dim anzzeilen As Long, anzspalten As Long
Dim i As Long, j As Long
anzzeilen = 20
anzspalten = 10
For j = 1 To anzspalten
For i = anzzeilen To 5 Step -1
If Cells(i, j).Value = 0 And Cells(i, j).Value <> "" Then
Cells(i, j).Select
Selection.Delete Shift:=xlUp
End If
Next
Next
End Sub