Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Any idea on how I can check if the variant contains an array,
considered IsArray returns true for ranges? thanks |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi QuantDev,
QuantDev wrote: Any idea on how I can check if the variant contains an array, considered IsArray returns true for ranges? If the variable is truly a Variant, then it cannot contain a reference to a Range object. When you do this: Dim v As Variant v = Range("A1:A10") The variable v is being filled with the *values* from the range A1:A10. So the IsArray function is correct - the Variant v really does contain an array at that point. Maybe I'm not understanding your issue - what is it you are trying to accomplish? -- Regards, Jake Marx MS MVP - Excel www.longhead.com [please keep replies in the newsgroup - email address unmonitored] |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Dim v as Variant
set v = Range("A1:A10") v will hold a range reference. I assume he has a generalized function that is passed in a variant which may contain a range. This would be a common need in handling a parmarray -- Regards, Tom Ogilvy "Jake Marx" wrote in message ... Hi QuantDev, QuantDev wrote: Any idea on how I can check if the variant contains an array, considered IsArray returns true for ranges? If the variable is truly a Variant, then it cannot contain a reference to a Range object. When you do this: Dim v As Variant v = Range("A1:A10") The variable v is being filled with the *values* from the range A1:A10. So the IsArray function is correct - the Variant v really does contain an array at that point. Maybe I'm not understanding your issue - what is it you are trying to accomplish? -- Regards, Jake Marx MS MVP - Excel www.longhead.com [please keep replies in the newsgroup - email address unmonitored] |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks for the correction, Tom. I guess I typically use variables of type
Object to do that, so I wasn't even aware (or forgot) you could do the same thing with a Variant. -- Regards, Jake Marx MS MVP - Excel www.longhead.com [please keep replies in the newsgroup - email address unmonitored] Tom Ogilvy wrote: Dim v as Variant set v = Range("A1:A10") v will hold a range reference. I assume he has a generalized function that is passed in a variant which may contain a range. This would be a common need in handling a parmarray "Jake Marx" wrote in message ... Hi QuantDev, QuantDev wrote: Any idea on how I can check if the variant contains an array, considered IsArray returns true for ranges? If the variable is truly a Variant, then it cannot contain a reference to a Range object. When you do this: Dim v As Variant v = Range("A1:A10") The variable v is being filled with the *values* from the range A1:A10. So the IsArray function is correct - the Variant v really does contain an array at that point. Maybe I'm not understanding your issue - what is it you are trying to accomplish? -- Regards, Jake Marx MS MVP - Excel www.longhead.com [please keep replies in the newsgroup - email address unmonitored] |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
"Jake Marx" wrote in message ...
Thanks for the correction, Tom. I guess I typically use variables of type Object to do that, so I wasn't even aware (or forgot) you could do the same thing with a Variant. Even if you declare it as an object, IsArray will still return true. The problem here is that it looks like a range is automatically converted to a variant array whenever a variant is expected. |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Function TestArray(a)
TestArray = True On Error Resume Next If IsError(UBound(a)) Then TestArray = False End If End Function Stan Scott New York City "QuantDev" wrote in message om... Any idea on how I can check if the variant contains an array, considered IsArray returns true for ranges? thanks |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
"Stan Scott" wrote in message ...
Function TestArray(a) TestArray = True On Error Resume Next If IsError(UBound(a)) Then TestArray = False End If End Function I suppose it would return false for 0 dimensioned arrays. |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Check for a range first
if typename(varr) is "Range" then ' it's a range elseif isarray(varr) then ' it's an array -- Regards, Tom Ogilvy "QuantDev" wrote in message om... Any idea on how I can check if the variant contains an array, considered IsArray returns true for ranges? thanks |
#9
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
"Tom Ogilvy" wrote in message ...
Check for a range first if typename(varr) is "Range" then ' it's a range elseif isarray(varr) then ' it's an array -- Thanks Tom. As far as you know, am I going to get "true" for isarray for others variant/object/* combinations? thx |
#10
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I wouldn't think so.
-- Regards, Tom Ogilvy "QuantDev" wrote in message om... "Tom Ogilvy" wrote in message ... Check for a range first if typename(varr) is "Range" then ' it's a range elseif isarray(varr) then ' it's an array -- Thanks Tom. As far as you know, am I going to get "true" for isarray for others variant/object/* combinations? thx |
#11
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
for example:
? isarray(thisworkbook.Sheets) False ? isarray(Activesheet.Shapes) False ? isarray(Range("A1")) False ? isarray(Range("A1:A10")) True I can't think of another object that returns an array for the value (or default) attribute. That doesn't mean there are not any, but I can't think of one. -- Regards, Tom Ogilvy "QuantDev" wrote in message om... "Tom Ogilvy" wrote in message ... Check for a range first if typename(varr) is "Range" then ' it's a range elseif isarray(varr) then ' it's an array -- Thanks Tom. As far as you know, am I going to get "true" for isarray for others variant/object/* combinations? thx |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
=IF(test,true,false) only ever returns "true"? | Excel Worksheet Functions | |||
How do I assign range to variant and use | Excel Discussion (Misc queries) | |||
How to define a Range with variant? | Excel Programming | |||
Best way to paste a variant array into a range? | Excel Programming | |||
Argument can be a variant or an object | Excel Programming |