Array Parameters as Variants Only
Your code snippet works when the array is called within a Sub. I have seen
and tried code snippets from other posts using the same approach you
outlined,but have never been able to get it to work as a worksheet function
call. If the function is used in a cell on an Excel worksheet and the array
values are called from a range on a worksheet, the result is the #VALUE error
message
For example, the values 1,2,3 are in Rows C3:C5 and named ArrIn. When
=DoNothing(ArrIn) or DoNothing(ArrIn()) is entered in Cell D7 , the result is
always #VALUE! .
Am I missing something?
thebaje
"Tom Ogilvy" wrote:
Sub Main()
Dim arr() As Integer
Dim v As Variant
ReDim arr(1 To 3)
For i = 1 To 3
arr(i) = i
Next
v = DoNothing(arr)
For i = LBound(v) To UBound(v)
Debug.Print i, v(i)
Next
End Sub
Function DoNothing(ByRef ArrIn() As Integer)
DoNothing = ArrIn
End Function
works for me.
--
Regards,
Tom Ogilvy
"TheVisionThing" wrote in message
m...
Am I correct in my assumption that I can only pass arrays in the form of
variants to a procedure as a parameter.
For example, the following function always works for arrays
Function DoNothing(ByRef ArrIn as variant)
DoNothing = arrIn
End Function
While the following function never seems to work for arrays even if they
are
dimensioned as integer arrays.
Function DoNothing(ByRef ArrIn as integer)
DoNothing = arrIn
End Function
Regards,
Wayne C.
|