EntireRow.Hidden

  • Thread starter Thread starter Jonas Haettner
  • Start date Start date
J

Jonas Haettner

Hi!

Why doesn't Sub ERROR work (se below)? I use the same
syntax.

What I really want to do is to find the fastest way of
hide rows in a column that meets a condition. The ultimate
would be to hide every row in one operation instead of
using a loop.

Sub OK()
Do While lRow < lEndRow
If Cells(lRow, 1) <> "Red" Then
Rows(lRow).EntireRow.Hidden = True
End If
lRow = lRow + 1
Loop
End Sub

Sub ERROR()
For Each c In [A1:A1000]
If c.Value Like "Red" Then
Rows(c.Row).EntireRow.Hidden = True
End If
Next
End Sub

/jonas
 
Your Sub ERROR works for me...

Here's one way to hide all the rows at once:

Public Sub HideRed()
Dim c As Range
Dim hideRange As Range
For Each c In Range("A1:A" & _
Range("A" & Rows.Count).End(xlUp).Row)
If c.Value = "Red" Then
If hideRange Is Nothing Then
Set hideRange = c
Else
Set hideRange = Union(hideRange, c)
End If
End If
Next c
If Not hideRange Is Nothing Then _
hideRange.EntireRow.Hidden = True
End Sub
 
Back
Top