View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Cawshus Cawshus is offline
external usenet poster
 
Posts: 9
Default Retrieve values from array and use as cell reference

witek wrote in
:

Cawshus wrote:
The ancient memory banks are not firing well today!

I need to programmatically generate a range of address, store them in
an array and create a union of the addresses. Kind of as follows:

...

for i = 1 to 20
AddrList(i) = "A"&i
next i

...'more code

for i = lbound(AddrList) to Ubound(AddrList)
UnionRange = Union(UnionRange, AddrList(i))

next i

'more code

' Example additional code:
UnionRange.select

' more code


How do I pass my AddrList values to UnionRange in a way that Union()
understands that it is working on range addresses?

--
Stephen

Due to the volume of garbage I filter out googlegroups.



Build a list of ranges not strings
Keep in mind that union args can't be Nothing
I assumed that at least one (first) element on a list is a valid range
if you don't know the exact number of elements use collection instead
of array.


Sub a()

Dim addrlist(1 To 20) As Range

For i = 1 To 3
Set addrlist(i) = Range("A" & i)
Next i

Dim unionrange As Range
Set unionrange = addrlist(LBound(addrlist))
For i = LBound(addrlist) + 1 To UBound(addrlist)
If Not addrlist(i) Is Nothing Then
Set unionrange = Union(unionrange, addrlist(i))
End If
Next i
unionrange.Select
End Sub



TY

I may have said "memory banks" but suspect it is the logic array that is
not firing well today! Set addrlist(i) = Range("A" & i) should have been
obvious. My first of many attempts was to build a string and Union
(theString). From there, it was every conceivable variation relating to
strings. I had read help on Union. In retrospect it reads "BIG HINT HERE,
old fellow".



--
Stephen

Due to the volume of garbage I filter out googlegroups.