extracting a subset of an array with VBA.

Y

y

Hi all,

I need to extract an array from another. The dest array will contain,e.g., the even elements of the
first one.

Which code of VBA could help me?
I've thought something this

Function Subset (source As range) As ? (I don't know, I need an array, not a range)
.... my algorithm ...
End Function

This function will be called in a cell as an argument inside several Excel functions.
Could someone tell me how can I return an array? Do I have to take care about some troubles in
particular in building this function?

Thanks in advance,
Alex.
 
G

Guest

Use a variant to return arrays
----- y wrote: ----

Hi all

I need to extract an array from another. The dest array will contain,e.g., the even elements of the
first one

Which code of VBA could help me
I've thought something thi

Function Subset (source As range) As ? (I don't know, I need an array, not a range
.... my algorithm ..
End Functio

This function will be called in a cell as an argument inside several Excel functions
Could someone tell me how can I return an array? Do I have to take care about some troubles i
particular in building this function

Thanks in advance
Alex
 
H

Harlan Grove

Alan Beban said:
You might want to consider the SubArray function in the freely
downloadable file at http://home.pacbell.net/beban. ....

There are two ways to read the OP's request: the resulting array contains
the even index entries or the even valued entries of the original
range/array. Having reread the code for SubArray, it's not immediately
obvious to me how it could accomplish either of these tasks. Perhaps you
could respond and enlighten with some actual code showing how SubArray could
be used to do either of these tasks.

To the OP: if you want a VBA function to return an array, the function's
return type must be Variant and you'd assign an array to its result. As a
simplistic example,

Function foo(n As Long) As Variant
Dim i As Long, rv As Variant
ReDim rv(1 To n)
For i = 1 To n
rv(i) = i
Next i
foo = rv
End Function
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top