Thread: Macros
View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
JLGWhiz[_2_] JLGWhiz[_2_] is offline
external usenet poster
 
Posts: 1,565
Default Macros

The OP expressly stated that they wanted to retain rows with blank cells in
the search range. Since VBA can "see" the difference between the values of
Empty, Empty String ("") and zero, the code had to be written so that VBA
would ignore Empty and Empty String.


"Patrick Molloy" wrote in message
...
this is a VB default - its "coercion" -- if there's nothing in a cell ,
then by coercion its value is zero
....kind of logical really.
I'd rather use
IF Range("E1").Value = "" Then
or
IF IsNull(Range("E1").Value) Then




"Rick Rothstein" wrote in message
...
On the active sheet, identify a cell with absolutely nothing in it (let's
say that cell is E1) then go to the Immediate window in the VB editor and
execute this line...

? Range("E1").Value = 0

Notice the response is True even though the cell does not have a 0 value
in it (as the OP stated is the condition that needs to be met).

--
Rick (MVP - Excel)


"Bob Bridges" wrote in message
...
Now, I've been writing in VBA for Excel only a few years myself so I ask
in
ignorance. But if we already know CellObj.Value = 0, what point can
there be
in also asking whether CellObj.Value < "" or Not IsEmpty(CellObj)?
Doesn't
the first test tell us everything we need to know? Seems to me the two
lines
I've commented out below are simply wasted space. What am I missing?

--- "JLGWhiz" wrote:
Sub delZeros()
lr = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
For i = lr To 2 Step -1
With ActiveSheet
If .Range("B" & i).Value = 0 _
' And .Range("B" & i).Value < "" _
' And Not IsEmpty(.Range("B" & i)) _
Then .Rows(i).Delete
End With
Next i
End Sub

--- "TSVillanova"
I am new a writing macros and am having a problem
writing one that will let me delete all rows that have a
0 value in cells of column "B" while leaving all of the
other rows with cells that have values and are blank.