Lo que debes hacer con tu macro es recorrer los registros primero y luego ir preguntando si es cero, elimina la columna, yo hice algo parecido en una macro pero debes adaptarla a tu caso, mira te voy a dejar un ejemplo solamente para que puedas ver la lógica, mi código lo que hace es eliminar una fila cuando los datos son iguales, si no entiendes bien me puedes decir y vemos como te ayudo, suerte
'primero identificar cantidad de registros
Sheets("D01M").Cells(2, 2).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
NumRows = Range("E1", Range("E1").End(xlDown)).Rows.Count - 1
Range("E2").Select
For x = 1 To NumRows
valor = Range("E" & x).Value
If (x <> 1) Then
If (Range("A" & x) <> "") Then
If (Range("E" & x).Value = Range("E" & x - 1).Value And Range("F" & x).Value = Range("F" & x - 1).Value) Then
If (Range("A" & x).Value > Range("A" & x - 1).Value) Then
num1 = Range("J" & x).Value
num2 = Range("J" & x - 1).Value
suma = num1 + num2
Range("J" & x).Value = suma
Range("J" & x).Select
Selection.NumberFormat = "0.00"
Rows("" & x - 1).Select
Selection.Delete Shift:=xlUp
Else
num1 = Range("J" & x).Value
num2 = Range("J" & x - 1).Value
suma = num1 + num2
Range("J" & x - 1).Value = suma
Range("J" & x - 1).Select
Selection.NumberFormat = "0.00"
Rows("" & x).Select
Selection.Delete Shift:=xlUp
End If
End If
End If
End If
Next