Home |
Search |
Today's Posts |
#4
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
When I don't know the number of rows, I'll use something like this if there's a
column that can determine where the data stops: Dim LastRow as long .... with activesheet 'use column A to determine the last row lastrow = .cells(.rows.count,"A").end(xlup).row end with Then I could use: ActiveSheet.Range("A1:S" & lastrow).AutoFilter .... (the dollar signs don't help in the code) Or I just use the entire column: activesheet.range("A:S").autofilter ... ======= After the range is filtered, I'd use something like: dim VisRng as range 'near the top .... with activesheet with .autofilter.range 'don't worry about the exact address If .Columns(1).Cells.SpecialCells(xlCellTypeVisible). Count = 1 Then 'nothing visible Set VisRng = Nothing Else 'resize to avoid the header 'and come down one row 'single column of visible cells Set VisRng = .Resize(.Rows.Count - 1, 1).Offset(1, 0) _ .Cells.SpecialCells(xlCellTypeVisible) End If End With End With if visrng is nothing then 'do nothing else visrng.entirerow.delete end if ====== Untested, uncompiled. Watch for typos! melExcel2007 wrote: I want a macro to work for a worksheet name which will always be the same directory and file name but the data inside worksheet will periodically change - increase in rows/decrease in rows. # of Columns/Column names will not change. I'm trying to filter for a non-changing set of info, then delete the results. Here's what I get if I record my current run: Workbooks.Open Filename:= _ "***Directory of location and file name here***" Rows("1:1").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$S$746").AutoFilter Field:=5, Criteria1:=Array("10" _ , "11", "12", "13"), Operator:=xlFilterValues Rows("2:28").Select Selection.Delete Shift:=xlUp ActiveSheet.Range("$A$1:$S$719").AutoFilter Field:=5 Rows("1:1").Select Selection.AutoFilter I see the ActiveSheet.Ranges will need to change with each incarnation of the worksheet. So, I could probably set these to A1:S60000 as the spreadsheet will never get beyond that many rows. But, selecting the results of filter - rows to delete portion is problematic. Any suggestions? Or should I filter and set the Operator to delete? If so, what would that look like? -- Dave Peterson |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Help in macro coding | Excel Discussion (Misc queries) | |||
converting question; function, formula, or coding? | Excel Worksheet Functions | |||
Help on macro coding for URL | Excel Worksheet Functions | |||
Please help on coding the macro. | Excel Worksheet Functions | |||
visual basic coding question | Excel Discussion (Misc queries) |