Delete Loop Error

L

LiAD

Hi,

I was given this code on the forum, (cant find my old post), which works
fine, deleting the grey coloured cells, however once it has deleted the lines
I need it errors on this line

Range("L3:L" & Rows.Count).Find("", SearchFormat:=True).EntireRow.delete

with Run time error 91, object variable or with block variable not set.

The same error appears if there are no grey cells to delete. Am I missing
something from this code?

Thanks
LiAD

Application.FindFormat.Interior.ColorIndex = 15
On Error GoTo Done
Do
Range("L3:L" & Rows.Count).Find("", SearchFormat:=True).EntireRow.delete
xlShiftUp
Loop
Done:
 
P

Patrick Molloy

to be expected. The line inherently does two things , it sets the range and
then deletes the row. If there's no cells detected, then trying to delete
from a null raises an error

in the following code sample, I've split the line into the two parts so that
if you step (F8) through it, you'll see what happens.
Try it on a blank column, a column with contiguous data and a column with a
break in the data..there's no error, simply that the range isn't set so
remains null and the IF takes care of it.

Sub rubout()
Dim target As Range
Set target = Range("L3:L" & Rows.Count).Find("", SearchFormat:=True)
If Not target Is Nothing Then
target.EntireRow.Delete
End If
End Sub
 
J

Jacob Skaria

Try the below which will loop until all rows are found...

Application.FindFormat.Interior.ColorIndex = 15
Do
Set varFound = Range("L3:L" & Rows.Count).Find("", SearchFormat:=True)
If Not varFound Is Nothing Then varFound.EntireRow.Delete xlShiftUp
Loop Until varFound Is Nothing

If this post helps click Yes
 
L

LiAD

Spot on once again

Thanks!

Jacob Skaria said:
Try the below which will loop until all rows are found...

Application.FindFormat.Interior.ColorIndex = 15
Do
Set varFound = Range("L3:L" & Rows.Count).Find("", SearchFormat:=True)
If Not varFound Is Nothing Then varFound.EntireRow.Delete xlShiftUp
Loop Until varFound Is Nothing

If this post helps click Yes
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top