![]() |
Populate list box with multi-dimensional array
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. |
Populate list box with multi-dimensional array
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. |
Populate list box with multi-dimensional array
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. |
Populate list box with multi-dimensional array
I managed to get your example working, and it is nearly what I am looking
for. However, only want one item from the array in each column. For example, say the array contained an 8 x 8 boolean evaluation of values - I would want only the result for the value in that column, i.e. [1,1] would just say False - becasue the arr(1,1) value is false. Hope this makes sense. BTW Am I right in thinking that the 2 refers to the number of items contained withing the array? (still a bit fuzzy on this one). Thanks "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. |
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. |
Populate list box with multi-dimensional array
Graham,
Unless I'm missing something, that's what you have there; 8 columns x 8 rows with the array value displayed in the corresponding position in the ListBox. NickHK "Graham Whitehead" wrote in message ... I managed to get your example working, and it is nearly what I am looking for. However, only want one item from the array in each column. For example, say the array contained an 8 x 8 boolean evaluation of values - I would want only the result for the value in that column, i.e. [1,1] would just say False - becasue the arr(1,1) value is false. Hope this makes sense. BTW Am I right in thinking that the 2 refers to the number of items contained withing the array? (still a bit fuzzy on this one). Thanks "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. |
All times are GMT +1. The time now is 12:06 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com