Pri počte 100 riadkov je to asi zanedbateľné, ale ak by sa jednalo o veľké množstvo, bolo by asi kratšie nepristupovať na list pri každom 0 riadku, ale hromadne. Zmenený test bunky na 0 nie aj na "" či Empty. Je lepšie odkazovať na nejaký list, zatiaľ je tam ActiveSheet. Proste iba trochu iná alternatíva.
Sub Skryj_Zobraz()
Dim iRow As Integer, r As Range
Application.ScreenUpdating = False
With ActiveSheet
If .Columns(6).EntireColumn.Hidden Then
.Rows("1:100").EntireRow.Hidden = False
Else
For iRow = 1 To 100
If .Cells(iRow, 3).Value = 0 And .Cells(iRow, 3).Value <> "" Then If r Is Nothing Then Set r = .Rows(iRow) Else Set r = Union(r, .Rows(iRow))
Next iRow
If Not r Is Nothing Then r.EntireRow.Hidden = True
End If
.Columns(6).EntireColumn.Hidden = Not .Columns(6).EntireColumn.Hidden
End With
Application.ScreenUpdating = True
End Subcitovat