Thread
:
Selecting Filtered records only when AutoFilter is on
View Single Post
#
3
Posted to microsoft.public.excel.programming
Paul Robinson
external usenet poster
Posts: 208
Selecting Filtered records only when AutoFilter is on
Hi Owen,
Your select statement will select a single continuous range of cells
with maxrow rows, whether they are visible or not.
Maybe you want;
rng.Offset(1, 0).Resize(rng.rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible).Select
This will select the filtered cells in your range.
If you are going to copy your filtered range to somewhere, then you
need not even use SpecialCells. Simply put on the filter then do a
copy on rng (look up help on the copy method). Only the visible cells
will copy.
regards
Paul
(Owen Vickers) wrote in message . com...
From an earlier posting on the same subject I found some useful code
that allows me to store the "visible" data/rows in a variable...
thanks to Dave Peterson for that!
The code I used is as follows:
Sub RefreshModel()
Dim rng As Range
Dim maxrow As Integer
Set rng = ActiveSheet.AutoFilter.Range
On Error Resume Next
Set rng = rng.Offset(1, 0).Resize(rng.rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible)
'rng = rng.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "0 rows"
Else
maxrow = rng.Cells.Count
End If
ActiveSheet.Select
currentrow = 12
Range("B" & currentrow & ":" & "F" & maxrow + 11).Select
End Sub
I get the correct value in the variable for maxrow but it is not
selecting the correct range!
I want to select the range B12 to F:maxrow ...the number of visible
rows but I do not understand the Resize and Offset methods in the code
above meaning that the selction is not working properly and does not
select all the Filtered rows!
What am I missing or not understanding?
Owen
Reply With Quote
Paul Robinson
View Public Profile
Find all posts by Paul Robinson