ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Simple For-Each question ... but not for me ... (https://www.excelbanter.com/excel-programming/394988-simple-each-question-but-not-me.html)

Ray

Simple For-Each question ... but not for me ...
 
I'm trying to perform some code against two small ranges, but it's not
working .... here's the first line of the code:
For Each r In Worksheets("ADMIN").Range("c16:c34", "I16:I33")

When I run the code, it runs the actions against ALL cells in range
C16:I33!

What am I doing wrong?

TIA,
ray


George Nicholson

Simple For-Each question ... but not for me ...
 
You might try:

For Each r In
UNION(Worksheets("ADMIN").Range("c16:c34"),Workshe ets("ADMIN").Range("I16:I33"))

AFAIK, Range(Cell1,Cell2) syntax is generally used to specify start (Cell1)
& end (Cell2) points of a single contiguous range. Since you fed it multiple
cells rather than the single cell arguments it expected, Excel simply
constructed a Range based on the topleft cell of Cell1 and the bottomright
cell of Cell2, resulting in C16:I33.

HTH,


"Ray" wrote in message
ps.com...
I'm trying to perform some code against two small ranges, but it's not
working .... here's the first line of the code:
For Each r In Worksheets("ADMIN").Range("c16:c34", "I16:I33")

When I run the code, it runs the actions against ALL cells in range
C16:I33!

What am I doing wrong?

TIA,
ray




Vergel Adriano

Simple For-Each question ... but not for me ...
 
try it this way:

With Worksheets("ADMIN")
For Each r In Union(.Range("C16:C34"), .Range("I16:I33"))
'your code here
Next r
End With


--
Hope that helps.

Vergel Adriano


"Ray" wrote:

I'm trying to perform some code against two small ranges, but it's not
working .... here's the first line of the code:
For Each r In Worksheets("ADMIN").Range("c16:c34", "I16:I33")

When I run the code, it runs the actions against ALL cells in range
C16:I33!

What am I doing wrong?

TIA,
ray



joel

Simple For-Each question ... but not for me ...
 
Try a union instead of a range

Sub test1()

With Worksheets("ADMIN")
For Each r In Union(.Range("c16:c34"), .Range("I16:I33"))

Next r
End With
End Sub
"Ray" wrote:

I'm trying to perform some code against two small ranges, but it's not
working .... here's the first line of the code:
For Each r In Worksheets("ADMIN").Range("c16:c34", "I16:I33")

When I run the code, it runs the actions against ALL cells in range
C16:I33!

What am I doing wrong?

TIA,
ray



Ray

Simple For-Each question ... but not for me ...
 
Thanks George .... that did the trick! And I also appreciate the tip
on specifying ranges -- good to know!

Regards,
ray





All times are GMT +1. The time now is 09:50 AM.

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