Я думаю, возможно, вам нужно определить переменную для записи статуса, который нужно скрыть или нет. Здесь я назвал «Флаг», чтобы указать, нужно ли скрывать столбец или нет.
Sub Hidden_Column()
Dim Flag As Boolean
Dim iRow As Integer
Dim iClm As Integer
Dim ColorNum
With Sheet1
For iClm = 1 To .Cells(1, 256).End(xlToLeft).Column
Flag = True
For iRow = 1 To .Cells(65536, 1).End(xlUp).Row
ColorNum = .Cells(iRow, iClm).Interior.ColorIndex
If ColorNum <> -4142 Then 'no color
Flag = False
Exit For
End If
Next iRow
If Flag = True Then
Columns(Cells(iRow, iClm).Column).EntireColumn.Hidden = True
End If
Next iClm
End With
End Sub