ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Delete Loop Error (https://www.excelbanter.com/excel-programming/433169-delete-loop-error.html)

LiAD

Delete Loop Error
 
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:

Patrick Molloy[_2_]

Delete Loop Error
 
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

"LiAD" wrote:

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:


Jacob Skaria

Delete Loop Error
 
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
---------------
Jacob Skaria


"LiAD" wrote:

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:


LiAD

Delete Loop Error
 
Spot on once again

Thanks!

"Jacob Skaria" wrote:

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
---------------
Jacob Skaria


"LiAD" wrote:

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:



All times are GMT +1. The time now is 04:38 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com