Macro error : Application-defined or object-defined error

J

Joe

Hi,

I have a worksheet "Filtered OSMI". I want a macro to go through each
row, and if the entry in column D is less than 50, I want to delete
that row. The same process should run until I hit a blank cell in
column D. I tried the following macro, but it given the error
"Application-defined or object-defined error". Could you tell me what I
am missing here?

Sub OSMIvalcheck()

Dim c As Range 'current
Dim N As Range 'next
Dim dolval As Variant
Dim i As Variant

Set c = Worksheets("Filtered OSMI").Range("A2")

i = 2

Do While Not IsEmpty(c)
Sheets("Filtered OSMI").Select
dolval = Worksheets("Filtered OSMI").Cells(i, "D").Value
If dolval < 50 Then
Range(i, "D").EntireRow.Delete
Else
Set N = c.Offset(1, 0)
Set c = N
i = i + 1
End If
Loop
End Sub


Thanks,

Joe.
 
D

Dave Peterson

How about:

Sub OSMIvalcheck()

Dim c As Range 'current
Dim dolval As Variant
dim delRng as range

Set c = Worksheets("Filtered OSMI").Range("D2")
Do While Not IsEmpty(c)
dolval = c.value
If dolval < 50 Then
if delrng is nothing then
set delrng = c
else
set delrng = union(c,delrng)
end if
end if
set c = c.offset(1,0)
Loop

if delrng is nothing then
'do nothing
else
delrng.entirerow.delete
end if

End Sub
 

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

Similar Threads

continuation 1
deleting blank rows with formulas 3
Application-defined or object-defined error 2
VBA problem 3
VBA Code problem error 9 18
macro to mimic sumproduct 4
Debug VBA code 6
un-checked boxes 12

Top