você pode tentar algo como o abaixo:
Sub hide()
Application.Calculation = xlManual
ActiveSheet.Cells.EntireColumn.Hidden = False
'600 represents 600 columns, adjust to suit your range
For i = 1 To 600
If InStr(Cells(2, i).Value, "0") And Columns(i).Hidden = False Then
Columns(i).Hidden = True
End If
Next i
Application.Calculation = xlAutomatic
End Sub