LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8
Default Array size limitation?

Hello again,

I believe there's a difference in what the OP is
attempting, versus what I'm saying might work. I'm using
2000, which has the same constraints per Tom's link as '97.

Initially I had written this off as the Evaluate Method
miracle, but your response prompted me to reconsider this
some more. Evaluate upon further consideration does not
seem to be the deciding factor here and it will fail with
a data-type array as well.

I am using xl 2000, so f, g & h from Tom's posts apply,
and as I understand it now, this is correct, a data-type
array greater than 5461 elements is not transposable via
WorksheetObject nor the Evaluate method. But, it seems
the same software can transpose more that 5461 range
objects, which it then coerces into a variant data-type
array. So with respect to the original post, in xl 2000 I
see the following:

Sub Does_Not_Work_Xl2000()
Dim rTmp1 As Range
Dim vTmp1() As Variant
Set rTmp1 = Range(Cells(1, 1), Cells(5462, 1))
vTmp1 = Application.WorksheetFunction.Transpose
(rTmp1.Value)
End Sub

Sub Does_Work_Xl2000()
Dim rTmp1 As Range
Dim vTmp1() As Variant
Set rTmp1 = Range(Cells(1, 1), Cells(5462, 1))
vTmp1 = Application.WorksheetFunction.Transpose(rTmp1)
Debug.Print rTmp1(5462)
End Sub

The deciding factor being rTmp1 vs. rTmp1.Value. I also
see the following:

Sub No_Work1()
Dim arr As Variant
arr = Range("a1:a10000")
arr = Application.WorksheetFunction.Transpose(arr)
End Sub

Sub No_Work2()
Dim arr As Variant
arr = Range("a1:a10000")
arr = Evaluate("transpose(" & arr & ")")
End Sub

Sub No_Work3()
Dim arr As Variant
arr = Evaluate("transpose(" & Range("a1:a10000").Value2
& ")")
End Sub

Sub Work1()
Dim arr As Variant
arr = Evaluate("transpose(a1:a10000)")
End Sub

Sub Work2()
Dim arr As Variant
arr = [transpose(a1:a10000)]
End Sub

Sub Work3()
Dim arr As Variant
arr = WorksheetFunction.Transpose(Range("a1:a10000"))
End Sub

And:

Sub Does_Not_Work_Xl2000()
Dim Rng As Variant, arr As Variant
Dim Lst As Long
Lst = 10000
Rng = Evaluate("row(1:" _
& Lst & ")/row(1:" & Lst & ")")
arr = Application.Transpose(Rng)
Debug.Print UBound(arr) & ": " & _
arr(UBound(arr))
End Sub

Sub Does_Work_Xl2000()
Dim Rng As Variant, arr As Variant
Dim Lst As Long
Lst = 10000
Rng = Evaluate("transpose(row(1:" _
& Lst & ")/row(1:" & Lst & "))")
arr = Rng
Debug.Print UBound(arr) & ": " & _
arr(UBound(arr))
End Sub

For the same reasons. So if you want to populate an array
with transpose range object values and you want to
overcome the 5461 limit in xl 2000, transpose the range in
a single step before it gets coerced into a variant data-
type array.

Have a nice weekend.

Regards,
Nate Oliver

-----Original Message-----
Apparently this doesn't work in the OP's version. See the

link in Tom Ogilvy's post in this thread.
 
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
Excel file size limitation Stew_Katz Excel Discussion (Misc queries) 5 April 10th 10 07:45 AM
Excel Chart Series Values Property Size Limitation Pete Charts and Charting in Excel 9 January 14th 08 03:03 PM
SheetSelectionChange Target size Limitation? Guillaume E. Excel Programming 1 September 27th 03 04:34 PM
Array Size Srinath Excel Programming 4 August 15th 03 07:58 PM
Array size ten Excel Programming 6 August 12th 03 09:16 AM


All times are GMT +1. The time now is 08:03 AM.

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

About Us

"It's about Microsoft Excel"