On Fri, 29 Aug 2008 00:06:00 -0700, leungkong
wrote:
Leungkong,
Thank you for your reply.
I need to ask some questions so I can understand all the details of
your suggestion.
Was this Sub intended to operate on the filtered output or are you
suggesting replacing the autofilter command completely with this Sub?
I assume I could put this code in line with my existing code rather
than having it be a separate Sub?
I think you can use looping to delete the row one by one.
Sub DeleteBlank()
Application.ScreenUpdating = False
Dim i As integer, lastrow As integer
lastrow = Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
For i = lastrow To 2 Step -1
With Worksheets("Sheet1").Range("X" & i)
If .Value = "" Then
.EntireRow.Delete
End If
End With
Next
End Sub
"John Keith" wrote:
The following commands make a part of macro I'm trying to complete
Selection.AutoFilter Field:=24, Criteria1:="="
Rows("10:1186").Select
Selection.Delete Shift:=xlUp
The first line specifies an autofilter and a criteria that generates
an output typical of the autofilter function.
This next two commands selects and deletes all the rows (and then some
for good measure, hence the 1186) that need to be deleted. These lines
were generated during a "record macro", hence the explicit 10:1186.
Now it is expected that the starting row to delete will not always be
row 10 due to the variability of the content of the rows before the
filter is applied (well duh!)
So, my question is, how is the filter output more generically selected
so that all any rows from the filter output result will be deleted?
Thanks for any suggestions!
John Keith
John Keith