View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Duke Carey Duke Carey is offline
external usenet poster
 
Posts: 1,081
Default delete rows with null values in "M" column

The first time a row-to-be-deleted is encountered, nothing has yet been
assigned to the variable rngToDelete, thus is is equal to "nothing" and it is
safe to assign the current address to the variable. When subsequent
rows-to-be-deleted are encountered, you want to aggregate the new row(s) with
the previously identified row(s), thus the purpose of the UNION() clause is
to assign the new row(s) without losing what was already assigned to the
variable.

"Janis" wrote:

I'm trying to delete the rows where the cell "M" has a null or blank value.
I borrowed this script and it compiles. The question I have is what is the
test
if range to delete
Is NOthing
then....
mean. Does that stand for null??

Also what is the union of the rng to delete?
Do I just do
if IsNull(rng)
set rng to delete = rng
I realize they are trying to be careful but I don't quite understand what is
going on.

thanks
---------------code---------------------------
Sub deleteRows()

Dim Rng As Range
Dim rngToSearch As Range
Dim rngToDelete As Range


With ActiveSheet
Set rngToSearch = .Range(.Range("M1"), .Cells(Rows.Count, "M").End(xlUp))
End With

For Each Rng In rngToSearch
If IsNull(Rng) Then
If rngToDelete Is Nothing Then
Set rngToDelete = Rng
Else
Set rngToDelete = Union(rngToDelete, Rng)
End If
End If
Next Rng

If Not rngToDelete Is Nothing Then rngToDelete.EntireRow.Delete