One way is to just check after you move.
do
activecell.offset(1,0).select
if activecell.entirerow.hidden = false then
exit do
end if
loop
=====
It's not usually necessary to select a cell to work with it. If I wanted to
loop through each of the cells/rows in a filtered range, I could do something
like:
Option Explicit
Sub testme()
Dim myCell As Range
Dim myRngV As Range
With Worksheets("sheet1")
Set myRngV = Nothing
On Error Resume Next
With .AutoFilter.Range.Columns(1)
Set myRngV = .Resize(.Rows.Count - 1, 1).Offset(1, 0) _
.Cells.SpecialCells(xlCellTypeVisible)
End With
On Error GoTo 0
If myRngV Is Nothing Then
MsgBox "no visible cells in autofilter range"
End If
End With
For Each myCell In myRngV.Cells
'do anything I want to the cell/row.
MsgBox myCell.Address(0, 0)
Next myCell
End Sub
What about a sheet that has filtered rows?
With the keyboard I just hit "Down".
this code works if all the rows are displayed.
activecell.offset(1,0).select
What can I do to move across rows in a filtered sheet?
I need to move only across the displayed rows.
Thanks.
GM.