How can I delete rows programmatically based on certain criteria?

G

Guest

I have a large dataset in Microsoft Excel 2003 with almost 3000 lines and
I want to delete the rows of it, which have nulls in one or more of their
columns.
e.g.
A B C D
1 2 3 4
1 4 5
2 3 4
Result : The 2nd and 3rd rows will be deleted or someway discarded.
How can I do this programmatically?
 
J

JE McGimpsey

One way:

Public Sub DeleteLinesWithNulls()
Const nCOLS As Long = 4
Dim rDelete As Range
Dim rCell As Range

For Each rCell In Range("A1:A" & _
Range("A" & Rows.Count).End(xlUp).Row)
If Application.CountA(rCell.Resize(1, nCOLS)) < nCOLS Then
If rDelete Is Nothing Then
Set rDelete = rCell
Else
Set rDelete = Union(rDelete, rCell)
End If
End If
Next rCell
If Not rDelete Is Nothing Then rDelete.EntireRow.Delete
End Sub
 
G

Guest

JEMcG gave you the answer as asked.

Just as an aside it may be easier to do it with autofilter.
you can add an extra col with countblank and the row you want b1:d1
then auto filter it and slectg the ones >0. delete them.
 

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