Declare and array in a function
I'm not quite sure what you're doing, but you can plop all the values into an
array with a single statement--like the one you used.
But this array will be two dimensional -- rows by columns.
So I could use this:
Option Explicit
Function test(rng As Range)
Dim ValuesArr As Variant
ValuesArr = rng.Value
test = ValuesArr(5, 1) '5th row, 1st column
End Function
And test it with a sub like:
Sub testme()
MsgBox test(worksheets("sheet1").Range("a1:A20"))
End Sub
Or use it from a cell in a worksheet with:
=test(a1:a20)
=====
But if you're doing this from a cell on a worksheet, you could just use:
=index(a1:a20,5)
Dave wrote:
I'm trying to declare an array from within a function, and then add to that
array certain fields from a range I use as the input variable. For example:
Function test(rng As Range)
valuesArr = rng
ReDim testArray(20) As String
For i = 1 To UBound(valuesArr)
testArray(i) = valuesArr(i, 1)
Next i
test = testArray(5)
End Function
So I want to add all values from within "rng" to "testArray()", and then
take the 5th element of testArray() and return it. I keep getting an error
when I enter the function, any ideas?
Thanks.
--
Dave Peterson
|