![]() |
IsArray on Variant/Object/Range returns true??
Any idea on how I can check if the variant contains an array,
considered IsArray returns true for ranges? thanks |
IsArray on Variant/Object/Range returns true??
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] |
IsArray on Variant/Object/Range returns true??
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 |
IsArray on Variant/Object/Range returns true??
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 |
IsArray on Variant/Object/Range returns true??
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] |
IsArray on Variant/Object/Range returns true??
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] |
IsArray on Variant/Object/Range returns true??
"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. |
IsArray on Variant/Object/Range returns true??
"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 |
IsArray on Variant/Object/Range returns true??
"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. |
IsArray on Variant/Object/Range returns true??
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 |
IsArray on Variant/Object/Range returns true??
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 |
All times are GMT +1. The time now is 01:41 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com