ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Convert string to range? (https://www.excelbanter.com/excel-programming/294719-convert-string-range.html)

k

Convert string to range?
 
I have the following variables defined.

startxrange = Rng.Offset(2, 0).Address
startyrange = Rng.Offset(3, 0).Address
endxrange = Range(tempendxrange).Address
endyrange = Range(endxrange).Offset(1, 0).Address

Each of these has a value such as $A$2. I would like to combine the two
x-ranges together and the two y-ranges together and plug them into a later
part of my code that will use said ranges to perform calculations. Here is
what I tried to combine them together, using the x-range as an example.

Dim XRates As Range
XRates = startxrange & ":" & endxrange
MsgBox "XRates is " & XRates

Then my function performs this on the constructed range. Of course, this is
where my macro fails.

Count = XRates.Count

A newsgroup search I performed yielded one post that seemed to suggest using
Indirect, although I'm not sure how to work it into this example and if
that'd be recommended.

Any assistance as to what I'm doing wrong would be appreciated. Thanks in
advance.

k



Leo Heuser[_3_]

Convert string to range?
 
If I have understood you correctly, try this:

Dim XRates As Range
Dim CountCells As Long

Set XRates = Range(startxrange & ":" & endxrange)
MsgBox "XRates is " & XRates.Address

CountCells = XRates.Cells.Count

I'm not sure, if the last line is what
you're after, but Count is a built-in name,
so avoid using it as a variable name.
--
Best Regards
Leo Heuser

Followup to newsgroup only please.

"k" skrev i en meddelelse
...
I have the following variables defined.

startxrange = Rng.Offset(2, 0).Address
startyrange = Rng.Offset(3, 0).Address
endxrange = Range(tempendxrange).Address
endyrange = Range(endxrange).Offset(1, 0).Address

Each of these has a value such as $A$2. I would like to combine the two
x-ranges together and the two y-ranges together and plug them into a later
part of my code that will use said ranges to perform calculations. Here is
what I tried to combine them together, using the x-range as an example.

Dim XRates As Range
XRates = startxrange & ":" & endxrange
MsgBox "XRates is " & XRates

Then my function performs this on the constructed range. Of course, this

is
where my macro fails.

Count = XRates.Count

A newsgroup search I performed yielded one post that seemed to suggest

using
Indirect, although I'm not sure how to work it into this example and if
that'd be recommended.

Any assistance as to what I'm doing wrong would be appreciated. Thanks in
advance.

k





JE McGimpsey

Convert string to range?
 
Ranges are objects, so you need to use the Set statement to assign a
variable to them:


Dim XRates As Range
Set XRates = Range(startxrange & ":" & endxrange)
MsgBox "XRates is " & XRates.Address

or

Dim XRates As Range
Set XRates = Range(Rng.Offset(2, 0), Range(tempendxrange))

In article ,
"k" wrote:

I have the following variables defined.

startxrange = Rng.Offset(2, 0).Address
startyrange = Rng.Offset(3, 0).Address
endxrange = Range(tempendxrange).Address
endyrange = Range(endxrange).Offset(1, 0).Address

Each of these has a value such as $A$2. I would like to combine the two
x-ranges together and the two y-ranges together and plug them into a later
part of my code that will use said ranges to perform calculations. Here is
what I tried to combine them together, using the x-range as an example.

Dim XRates As Range
XRates = startxrange & ":" & endxrange
MsgBox "XRates is " & XRates

Then my function performs this on the constructed range. Of course, this is
where my macro fails.

Count = XRates.Count

A newsgroup search I performed yielded one post that seemed to suggest using
Indirect, although I'm not sure how to work it into this example and if
that'd be recommended.

Any assistance as to what I'm doing wrong would be appreciated. Thanks in
advance.

k


k

Convert string to range?
 
Thanks for both responses; they solved my problem. As you can tell, I'm not
much of a VBA programmer, but I'd be much farther behind if not for this
newsgroup. It's an amazing resource powered by helpful & knowledgeable
individuals. Thanks again.

k

"Leo Heuser" wrote in message
...
If I have understood you correctly, try this:

Dim XRates As Range
Dim CountCells As Long

Set XRates = Range(startxrange & ":" & endxrange)
MsgBox "XRates is " & XRates.Address

CountCells = XRates.Cells.Count

I'm not sure, if the last line is what
you're after, but Count is a built-in name,
so avoid using it as a variable name.
--
Best Regards
Leo Heuser

Followup to newsgroup only please.

"k" skrev i en meddelelse
...
I have the following variables defined.

startxrange = Rng.Offset(2, 0).Address
startyrange = Rng.Offset(3, 0).Address
endxrange = Range(tempendxrange).Address
endyrange = Range(endxrange).Offset(1, 0).Address

Each of these has a value such as $A$2. I would like to combine the two
x-ranges together and the two y-ranges together and plug them into a

later
part of my code that will use said ranges to perform calculations. Here

is
what I tried to combine them together, using the x-range as an example.

Dim XRates As Range
XRates = startxrange & ":" & endxrange
MsgBox "XRates is " & XRates

Then my function performs this on the constructed range. Of course, this

is
where my macro fails.

Count = XRates.Count

A newsgroup search I performed yielded one post that seemed to suggest

using
Indirect, although I'm not sure how to work it into this example and if
that'd be recommended.

Any assistance as to what I'm doing wrong would be appreciated. Thanks

in
advance.

k







Leo Heuser[_3_]

Convert string to range?
 
You're welcome "k".
We're glad to be able to help :-)

LeoH

"k" skrev i en meddelelse
...
Thanks for both responses; they solved my problem. As you can tell, I'm

not
much of a VBA programmer, but I'd be much farther behind if not for this
newsgroup. It's an amazing resource powered by helpful & knowledgeable
individuals. Thanks again.

k





All times are GMT +1. The time now is 11:15 AM.

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