View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
NickHK NickHK is offline
external usenet poster
 
Posts: 4,391
Default Populate list box with multi-dimensional array

Graham,
Read the help about L/UBound.
As you can have multi-dimensional arrays, you need to specify which
dimension you want info on.
In this case it is the 2nd dimension, so the number of columns in the
ListBox match the number of horizontal elements in the array.
Otherwise it defaults to 1.
Actually, it would be better as :
..ColumnCount = UBound(arr, 2)-LBound(arr, 2)+1
to handle 0, 1 or whatever based array.

NickHK

"Graham Whitehead" wrote in message
...
Thanks for the help Nick. I see how this works except for the line:

.ColumnCount = UBound(arr, 2)

Where does the 2 come from and what does it do?

"NickHK" wrote in message
...
Graham,
Does this work for you:

Private Sub CommandButton1_Click()
Dim arr(1 To 8, 1 To 8) As String
Dim i As Long
Dim j As Long

'Fill array, but can come from a Range or wherever
For i = 1 To 8
For j = 1 To 8
arr(i, j) = "Item " & i & ", " & j
Next
Next

With ListBox1
.Clear
.ColumnCount = UBound(arr, 2)
.List = arr()
End With

End Sub

NickHK

End Sub
"Graham Whitehead" wrote in message
...
Hi, I was just wondering if it possible to populate a list box with an

array
that was say 8 x 8. Basically, I organised a whole bunch of data and

would
like to present it to a user inside a listbox on a form.