If the functions in the freely downloadable file at
http://home.pacbell.net/beban are available to your workbook, another way is
Sub CreateSuperSizeMeArray_R1()
Dim arr(1 To 66000, 1 To 5) As Long
Dim arrCol() As Long
Dim j As Long
Dim i As Long
For i = 1 To 66000
For j = 1 To 5
arr(i, j) = i + j * 100
Next j
Next i
'Create single column array containing the 3rd column of arr.
newArray = SubArray(arr, 3, 3, 1, 66000)
End Sub
Jim Cone wrote:
Tom,
Thanks for that; I have added a comment to my notes on indexing Arrays.
The following is all I could come up with to "pull out" a
column from a larger array. It does work almost instantly...
Regards,
Jim Cone
San Francisco, USA
--------------------------
Sub CreateSuperSizeMeArray_R1()
Dim arr(1 To 66000, 1 To 5) As Long
Dim arrCol() As Long
Dim j As Long
Dim i As Long
For i = 1 To 66000
For j = 1 To 5
arr(i, j) = i + j * 100
Next j
Next i
'Create single column array containing the 3rd column of arr.
ReDim arrCol(LBound(arr, 1) To UBound(arr, 1), 1 To 1)
For i = LBound(arr, 1) To UBound(arr, 1)
arrCol(i, 1) = arr(i, 3)
Next 'i
MsgBox arrCol(1, 1) & vbCr & _
arrCol(33000, 1) & vbCr & _
arrCol(66000, 1)
End Sub
'------------
"Tom Ogilvy"
wrote in message
Just to add that this fails for an array 65536 rows.
Since the OP said it was too large to put on a worksheet. (which could mean
it is larger than the limit)