ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Making one Range out of two (https://www.excelbanter.com/excel-programming/433528-making-one-range-out-two.html)

vsoler

Making one Range out of two
 
Hi,

I have a function that, given a Range of cells, performs some
calculation

Say it can be called like this: =Compute(Rng)

However, I sometimes need that the Range "Rng" be made out of two
simpler ones:

Say I call the function with:

Compute(SomeFunc(A1:A10,C1:C10))

But that I want Compute to behave as if there was only a single Range.

Using some Excel built-in functions (union ranges?) puts me in an
ambiguous situation, since I never know if the union is made
horizontally wise, getting a range that is 10X2 (rows X columns) or
else vertically wise, getting a range that is 20X1.

Does anybody have some ideas as to how could I build SomeFunc"?

Thank you.

Vicente Soler

joeu2004

Making one Range out of two
 
"vsoler" wrote:
Say it can be called like this: =Compute(Rng)

However, I sometimes need that the Range "Rng" be
made out of two simpler ones


Does this solve your problem?

=doit((A1:A10,C1:C10))

Function doit(rng As Range)
Dim cell As Range
For Each cell In rng
Debug.Print cell.Address
Next cell
End Function

Output:

$A$1
$A$2
.....
$A$9
$A$10
$C$1
$C$2
.....
$C$9
$C$10


Using some Excel built-in functions (union ranges?)
puts me in an ambiguous situation, since I never know
if the union is made horizontally wise, getting a
range that is 10X2 (rows X columns) or else vertically
wise, getting a range that is 20X1.


Looks to me like it traverses horizontally first, then vertical.

For example, for:

=doit((A1:B10,C1:Z2))

the output is:

$A$1
$B$1
.....
$A$10
$B$10
$C$1
$D$1
.....
$Y$1
$Z$1
$C$2
$D$2
.....
$Y$2
$Z$2


----- original message -----

"vsoler" wrote in message
...
Hi,

I have a function that, given a Range of cells, performs some
calculation

Say it can be called like this: =Compute(Rng)

However, I sometimes need that the Range "Rng" be made out of two
simpler ones:

Say I call the function with:

Compute(SomeFunc(A1:A10,C1:C10))

But that I want Compute to behave as if there was only a single Range.

Using some Excel built-in functions (union ranges?) puts me in an
ambiguous situation, since I never know if the union is made
horizontally wise, getting a range that is 10X2 (rows X columns) or
else vertically wise, getting a range that is 20X1.

Does anybody have some ideas as to how could I build SomeFunc"?

Thank you.

Vicente Soler



Rick Rothstein

Making one Range out of two
 
In order to get the best answer for your question, I think you will need to
tell us what it is that your function is doing with the ranges passed into
it. If your code is not too long, post that would help as well.

--
Rick (MVP - Excel)


"vsoler" wrote in message
...
Hi,

I have a function that, given a Range of cells, performs some
calculation

Say it can be called like this: =Compute(Rng)

However, I sometimes need that the Range "Rng" be made out of two
simpler ones:

Say I call the function with:

Compute(SomeFunc(A1:A10,C1:C10))

But that I want Compute to behave as if there was only a single Range.

Using some Excel built-in functions (union ranges?) puts me in an
ambiguous situation, since I never know if the union is made
horizontally wise, getting a range that is 10X2 (rows X columns) or
else vertically wise, getting a range that is 20X1.

Does anybody have some ideas as to how could I build SomeFunc"?

Thank you.

Vicente Soler




All times are GMT +1. The time now is 12:07 AM.

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