ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Empty cells in For Loop (https://www.excelbanter.com/excel-programming/329471-empty-cells-loop.html)

Linking to specific cells in pivot table

Empty cells in For Loop
 
I am trying to write a For Loop which runs all the populated cells in the
range through a calculation. My question is how do I make sure that empty or
null cells aren't selected to be used in the calculation? Essentially I just
want to ignore the empty/null cells. Below is the code for the loop in case
this helps:

For Each A In range1
For Each B In range1
If B.Value < A.Value Then
If Abs(A - B) <= testvalue Then
Sheets("Test Results").Select
range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection.Value = "Interference"
ActiveCell.Offset(0, 1).Select
Selection.Value = A.Value
ActiveCell.Offset(0, 1).Select
Selection.Value = B.Value
End If
End If
Next
Next

Bob Phillips[_7_]

Empty cells in For Loop
 
Do you mean that if a cell is empty then you don't care about the rest, that
is if an A is empty, you ignore that and all associated B's?

If so

For Each A In range1
If Len(A.Value) 0 Then
For Each B In range1
If Len(B.Value) 0 Then
If B.Value < A.Value Then
If Abs(A.Value - B.Value) <= testvalue Then
With Sheets("Test
Results").Range("A1").End(xlDown)
.Offset(1, 0).Value = "Interference"
.Offset(0, 1).Value = A.Value
.Offset(0, 1).Value = B.Value
End With
End If
End If
End If
Next B
End If
Next A


--
HTH

Bob Phillips

"Linking to specific cells in pivot table"
crosoft.com wrote in
message ...
I am trying to write a For Loop which runs all the populated cells in the
range through a calculation. My question is how do I make sure that empty

or
null cells aren't selected to be used in the calculation? Essentially I

just
want to ignore the empty/null cells. Below is the code for the loop in

case
this helps:

For Each A In range1
For Each B In range1
If B.Value < A.Value Then
If Abs(A - B) <= testvalue Then
Sheets("Test Results").Select
range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection.Value = "Interference"
ActiveCell.Offset(0, 1).Select
Selection.Value = A.Value
ActiveCell.Offset(0, 1).Select
Selection.Value = B.Value
End If
End If
Next
Next




Edwin Tam[_7_]

Empty cells in For Loop
 
Try the following approach. Note the major "Union" line added.
Also, a "Range" variable called "tmp" is added.

The macro minimize the scope to only those cells in the range with either
value or formula. All empty cells are ignored. Therefore, processing time
will be minimized.



Dim range1 As Range
Dim tmp As Range
Dim A As Object, B As Object
Dim testvalue

With range1
Set tmp = Union(.SpecialCells(2), .SpecialCells(-4123))
End With
For Each A In tmp
For Each B In tmp
If B.Value < A.Value Then
If IsNumeric(A) And IsNumeric(B) Then
If Abs(A - B) <= testvalue Then
With Worksheets("Test Results").Range("A1")
.End(xlDown).Offset(1, 0).Value = "Interference"
.End(xlDown).Offset(0, 1).Value = A.Value
.End(xlDown).Offset(0, 2).Value = B.Value
End With
End If
End If
End If
Next
Next


Regards,
Edwin Tam

http://www.vonixx.com



"Linking to specific cells in pivot table" wrote:

I am trying to write a For Loop which runs all the populated cells in the
range through a calculation. My question is how do I make sure that empty or
null cells aren't selected to be used in the calculation? Essentially I just
want to ignore the empty/null cells. Below is the code for the loop in case
this helps:

For Each A In range1
For Each B In range1
If B.Value < A.Value Then
If Abs(A - B) <= testvalue Then
Sheets("Test Results").Select
range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Selection.Value = "Interference"
ActiveCell.Offset(0, 1).Select
Selection.Value = A.Value
ActiveCell.Offset(0, 1).Select
Selection.Value = B.Value
End If
End If
Next
Next



All times are GMT +1. The time now is 05:15 PM.

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