View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Alan Beban Alan Beban is offline
external usenet poster
 
Posts: 200
Default How to select a single "column" of a VBA array?

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)