Страницы: 1
RSS
Заполнить ListBox с колонками
 
Есть ли способ заполнять ListBox с колонками НЕ С ЛИСТА?  
Т.е. насколько я знаю, если поставить ColumnCount > 1, то придется в RowSource ставить ссылку на диапазон ячеек.  
Можно ли заполнять ListBox например из массива или еще что-нибудь такое...?  
Как в таком случае дело обстоит с заголовками этих колонок? (при ColumnHeads = True)
 
for i=1 to 10  
listbox.additem a(i)  
next  
подразумевается, что а(i) уже существует
Bite my shiny metal ass!      
 
Да, ColumnHeads уже работать не будет  
 
Добавьте над каждым столбцом по надписи (Label) и напишите своё название столбцов  
 
а ListBox с 3 колонками можно заполнить так  
 
Пример из справки (сократил немного, удалив упоминания про LisBox2)  
 
Private Sub UserForm_Initialize()  
Dim i As Single  
Dim MyArray(5, 3)  
    'The 1st list box contains 3 data columns  
   ListBox1.ColumnCount = 3  
 
   'Load integer values into first column of MyArray  
   For i = 0 To 5  
       MyArray(i, 0) = i  
   Next i  
 
   'Load columns 2 and three of MyArray  
   MyArray(0, 1) = "Zero"  
   MyArray(1, 1) = "One"  
   MyArray(2, 1) = "Two"  
   MyArray(3, 1) = "Three"  
   MyArray(4, 1) = "Four"  
   MyArray(5, 1) = "Five"  
 
   MyArray(0, 2) = "Zero"  
   MyArray(1, 2) = "Un ou Une"  
   MyArray(2, 2) = "Deux"  
   MyArray(3, 2) = "Trois"  
   MyArray(4, 2) = "Quatre"  
   MyArray(5, 2) = "Cinq"  
 
   'Load data into ListBox1  
   ListBox1.List() = MyArray  
End Sub
 
Спасибо, а я что-то этот раздел справки сначала не нашел :) Всё получилось
 
Можно вот так еще  
Private Sub UserForm_Initialize()  
   ListBox1.List = Range("A1:C15").Value  
End Sub  
 
Только ColumnCount надо будет поставить по количеству столбцов
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Я погорячился и про столбцы не дочитал.  
Думаю, что вариант с лейблом единственно возможный, точнее наиболее простой. Уокенбах на эту тему пишет:  
Не существует способа определить заголовки столбцов в свойстве colmnnHeads,  
когда в качестве источника списка применяется массив VBA.
Bite my shiny metal ass!      
 
Да, или заголовки можно в нулевую строку двумерного массива вписать (заодно и первая ИСПОЛЬЗУЕМАЯ строка будет с индексом 1)
 
Только клик по нулевой строке тоже будет обрабатываться.  
Возможно вызовет ошибку.
Bite my shiny metal ass!      
 
{quote}{login=Лузер™}{date=13.02.2009 02:25}{thema=}{post}Только клик по нулевой строке тоже будет обрабатываться.  
Возможно вызовет ошибку.{/post}{/quote}  
Согласен. Но мне для моих целей это подойдет - хочу использовать листбокс скорее как способ отображения информации - на нем не будет никаких событий
Страницы: 1
Читают тему
Наверх