ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   EntireRow.Hidden (https://www.excelbanter.com/excel-programming/280475-entirerow-hidden.html)

Jonas Haettner

EntireRow.Hidden
 
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

J.E. McGimpsey

EntireRow.Hidden
 
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





In article ,
"Jonas Haettner" wrote:

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



All times are GMT +1. The time now is 01:02 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com