Новости:

Название темы должно отражать суть задачи.
Темы типа "ПОМОГИТЕ!!!", "Срочно!" и т.п. будут удаляться без объяснения причин

Главное меню

Работа со столбцами ListBox более 10 штук

Автор RuSoldatSe, 07.01.2026, 14:22:01

« назад - далее »

RuSoldatSe

Добрый день.
Подскажите пож-та, как можно работать со столбцами ListBox более 10? Знаю что AddItem не позволяет создавать больше 10 столбцов. При этом я работаю с элементами UserForm (использование ячеек на листе не подходит (RowSource)). Можно значения элементов на UserForm загрузить в массив и передать его содержимое через .List. А как быть, если нужно в ListBox добавить несколько строк с разными значениями в 15 столбцах? Можно ли массив передавать в определенную строку, а не во весь ListBox? Пример во вложении. Спасибо за помощь.

Дмитрий Щербаков(The_Prist)

Пример совершенно не информативный, т.к. не к чему хоть что-то привязать и понять, что откуда Вы собираетесь записывать в ListBox. Данных-то вообще нет - пустой лист. По коду тоже нет понимания, что откуда планируется записывать.
Грубо вот как-то так - под пример сами подстраивайте:
  cols = 15               ' кол-во столбцов
  ReDim Arr(0, 1 To cols) ' создаем массив с одной строкой и нужным количеством столбцов
  With ListBox1
    .ColumnCount = cols
    .List = Arr()    ' если назначить в качестве данных даже пустой массив - это позволит дальше работать с кол-вом столбцов > 10
    For r = 2 To 20 'цикл по строкам
      If Cells(r, 1) = "некое условие" Then
        .AddItem Empty
        For c = 1 To cols
          .List(i, c-1) = Cells(r, c).Value
        Next
        i = i + 1
      End If
    Next
    .RemoveItem .ListCount - 1  'Удаляем строку, которая использовалась для трюка с добавлением более 10-ти столбцов
  End With
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

RuSoldatSe

Спасибо, не знал что можно закинуть пустой массив (.List = Arr()) чтоб "открылись" больше 10 столбцов. Т.е. после выполнения этой команды, получается уже можно использовать добавление новой строки (.AddItem) и как обычно работать со номерами столбцов > 10? А то я планировал добавлять "с запасом" пустых строк (ReDim Arr(10, 1 To cols)), а потом пробегаться по ListBox и удалять фактически пустые.

Дмитрий Щербаков(The_Prist)

Цитата: RuSoldatSe от 07.01.2026, 17:10:46Т.е. после выполнения этой команды, получается уже можно использовать добавление новой строки (.AddItem) и как обычно работать со номерами столбцов > 10?
Попробовать самостоятельно не получается? Нужно какое-то отдельное подтверждение? :) Если честно - думал, что специально проставленный комментарий вполне красноречиво описывает эту возможность  ;)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Яндекс.Метрика Рейтинг@Mail.ru