H0la
Para ocultar, puedes ocupar lo siguiente
Sub OcultarCero()
Dim strCol As String
Dim h As Worksheet
'Asignar hoja
Set h = Sheets("Hoja1")
For i = 2 To 8
'Verificar si el valor de la fila 22 en la columna i es cero
If h.Cells(22, i).Value = 0 Then
'Obtener el nombre de la columna
strCol = Replace(h.Cells(1, i).Address(False, False), "1", "")
'Ocultar la columna
h.Columns(strCol & ":" & strCol).EntireColumn.Hidden = True
End If
Next
End Sub
Para mostrar, puedes hacerlo con uno de los siguientes procedimientos
Si te quieres restringir a las columnas afectadas en el primer procedimiento
Sub MostrarTodo()
Dim strCol As String
Dim h As Worksheet
Set h = Sheets("Hoja1")
For i = 2 To 8
strCol = Replace(h.Cells(1, i).Address(False, False), "1", "")
h.Columns(strCol & ":" & strCol).EntireColumn.Hidden = False
Next
End Sub
O puedes afectar a toda la hoja
Sub MostrarToda()
Dim strCol As String
Dim h As Worksheet
Set h = Sheets("Hoja1")
'Mostrar las columnas de toda la hoja
h.Cells.EntireColumn.Hidden = False
End Sub