VBA excel – добавление поля со списком в список

ребята, я надеюсь, что кто-то может помочь мне с этим. У меня есть поле со списком, в котором есть данные из именованного диапазона, и я хотел бы выбрать значение из поля со списком и добавить его в список.

В настоящее время я могу добавить элемент в список с помощью кнопки, но как только я добавлю его, он перезапишет текущий элемент.

Также он должен иметь возможность добавить элемент внизу, если в поле списка уже есть некоторые значения.

Я думаю, что это как-то связано с поиском последней строки, но я не уверен, любая помощь будет высоко оценена 🙂

образ вопроса

Dim i As Integer With Me.lb_lease .ColumnCount = 3 .ColumnWidths = "200;50;50" .AddItem .List(i, 0) = cbox_hardware.Column(0) .List(i, 1) = cbox_hardware.Column(1) .List(i, 2) = cbox_hardware.Column(2) i = i + 1 End With 

Я предлагаю отделить действия по настройке списка и добавлению к нему элементов. В приведенной ниже процедуре установите поле и очистите все существующее содержимое. Измените имена рабочего листа и списка в соответствии с вашими обстоятельствами. Код также будет работать, если список находится в пользовательской форме.

 Private Sub ResetListBox() With Worksheets("LibraryAccount").ListBox1 .ColumnCount = 3 .ColumnWidths = "80;50;50" .Clear ' delete current list End With End Sub 

Следующая процедура добавляет к нему элемент. Для этого требуется разделительная колонка с двумя двоеточиями, например «One, Two; Three». Вы можете связать его с результатом combobox, используя ListIndex, чтобы идентифицировать строку. Процедура будет разбирать строку и добавить ее в нижней части списка. Имена рабочих листов и ListBox должны быть изменены.

 Private Sub AddToListBox(AddArray As String) Dim Arr() As String Dim i As Integer Dim C As Long Arr = Split(AddArray, ";") With Worksheets("LibraryAccount").ListBox1 i = .ListCount .AddItem For C = 0 To 2 .List(i, C) = Arr(C) Next C End With End Sub 

Ниже приведена процедура тестирования вышеуказанной процедуры. Вы можете запустить ResetListbox а затем вызвать TestAdd несколько раз.

 Private Sub TestAdd() AddToListBox "One;Two;Three" End Sub 
  • Удалить всю строку выбранного элемента в списке, VBA Excel
  • ActiveX ListBox изменяет размер после вставки строк
  • VBA UserForm в Excel - несогласованные строки при вводе данных в электронную таблицу
  • Excel VBA ActiveX ListBox не позволяет клику
  • Пользовательские формы для заполнения столбца
  • Добавьте новую строку с данными, введенными в определенную таблицу на листе, если выбран определенный элемент списка
  • Listbox не возвращает данные правильно в excel vba
  • Excel: если выбрано значение n2 списка, измените значение другой ячейки
  • Фильтрация ListBox включает только уникальные значения в Excel
  • Как получить имя строки, выбранной в ListBox в VBA
  • Колонки списка заполнения VBA
  • Давайте будем гением компьютера.