Gustav Brock
Gustav at cactus.dk
Wed Mar 12 05:38:48 CDT 2008
Hi John As far as I know, a Variant can hold an array. Thus you should be able to pass your modified array as a Variant to the next function. Not very elegant and leads to not so easy to read code. Your use of a Collection might be preferable. /gustav >>> jwcolby at colbyconsulting.com 12-03-2008 11:22 >>> Paramarrays are very useful. function ListGrpMembers(ParamArray GrpMembers() as variant) dim varGrpMember for each varGrpMember in GrpMembers debug.print varGrpMember next varGrpMember end function ListGrpMembers "John", "Mary", "Robbie", "Allie" Paramarrays allow you to feed a variable number of values into a function, and then easily manipulate the array that they are placed in using a for each iterator. The problem lies if you then need to feed that array off to another function. function LogGrpMembers(Paramarray GrpMembers() as variant) end function Using a function as shown above doesn't work. If you pass the GrpMembers() array assembled in ListGrpMembers into LogGrpMembers you get a runtime error. I have "solved" this problem by unpacking the array into a collection and passing the collection into the next function. function LogGrpMembers( GrpMembers as collection) end function function ListGrpMembers(ParamArray GrpMembers() as variant) dim varGrpMember dim colGrpMembers as collection set col for each varGrpMember in GrpMembers colGrpMembers.Add varGrpMember next varGrpMember LogGrpMembers colGrpMembers end function While that works, it is cumbersome and there are times where you would really like the second function to be a ParamArray as well, perhaps so that it can be called directly if required. Am I missing something? Is there a syntax for passing a paramarray into another paramarray? John W. Colby Colby Consulting www.ColbyConsulting.com