Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 100
Default Passing ParamArray to another function converts it to TWO dimensions.

If I set watch points for Params and SubParams below, I find that
Params has one dimension but SubParams has TWO:

Function Func(ParamArray Params) as String
... = SubFunc(Params)
End Function

Function SubFunc(ParamArray SubParams) as String
...
End Function

The following (to me) ludicrous kludge fixes the problem, making
SubParams the nice, obedient 1-dim array equivalent to Params that it
should be:

Function Func(ParamArray Params)
... = SubFunc(Params(0))
End Function

What in HELL is this? String theory?

***
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 15
Default Passing ParamArray to another function converts it to TWOdimensions.

Hi,

When you call Func, you would be passing in argument with comma
seperated values.
e.g. Func(1,2,3,4)

ParamArray is intended for variable number of arguments, which will be
treated as array internally (when inside method)
In case of subfunc, you are passing only 1 argument (which is an array
as converted by func)

Looking at the code, you are passing the array entirely to SubFunc.
So, subfunc will create an array & store your array (as you passed it
to Func) - in 0th element

HTH
Kalpesh
  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 968
Default Passing ParamArray to another function converts it to TWO dimensions.

I think this is the recommended method for passing a paramarray argument to
a sub or function

Option Explicit
Function tester(arg1 As Variant, ParamArray arg2() As Variant)
Dim vv As Variant

vv = arg2

tester = test2(vv)

End Function

Function test2(varg As Variant)
test2 = varg
End Function

regards
Charles
__________________________________________________
Outlines for my Sessions at the Australia Excel Users Group
http://www.decisionmodels.com/OZEUC.htm

wrote in message
...
If I set watch points for Params and SubParams below, I find that
Params has one dimension but SubParams has TWO:

Function Func(ParamArray Params) as String
... = SubFunc(Params)
End Function

Function SubFunc(ParamArray SubParams) as String
...
End Function

The following (to me) ludicrous kludge fixes the problem, making
SubParams the nice, obedient 1-dim array equivalent to Params that it
should be:

Function Func(ParamArray Params)
... = SubFunc(Params(0))
End Function

What in HELL is this? String theory?

***



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 100
Default Passing ParamArray to another function converts it to TWOdimensions.

Kalpesh & Charles:

Thanks very much for your replies.

And you make me understand what's going on.

Turns out, I was WRONG in saying that passing single element Params(0)
fixed the problem. Params(0) was reduced to 1 dim all right, but it
has only 1 element.

I'll try your suggestion.

Thanks again.

***
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 100
Default Passing ParamArray to another function converts it to TWOdimensions.

Charles:

Your method works: namely, forget about 'ParamArray' in SubFunc, and
just make the arg an array. I hadn't thought of that. Duh.

Thanks again.

***
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
ParamArray bugs? pinkfloydfan Excel Programming 7 May 30th 07 09:14 PM
Help with paramarray Jeremy Excel Programming 1 January 8th 07 03:48 PM
Array function, two dimensions?? and worksheet arrays Neal Zimm Excel Programming 7 October 3rd 05 09:16 PM
Array function, two dimensions?? Neal Zimm Excel Programming 0 October 1st 05 04:14 PM
ParamArray Jim Chandler[_2_] Excel Programming 4 April 28th 04 03:28 PM


All times are GMT +1. The time now is 06:46 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"