Заполнение выпадающего списка со значениями в VBA

У меня возникли проблемы с заполнением поля со списком параметров из диапазона.

Пользователь выбирает диапазон с помощью refedit, тогда ComboBox должен быть заполнен значениями выбранных ячеек. Если пользователь изменяет ref, старые данные должны быть удалены и повторно заполнены новыми данными.

Ниже мой текущий код. Скомпилируется правильно, но не работает.

Я не привязан к ComboBox как таковой, но мне нужно заполнить список значениями из столбца, чтобы пользователь мог выбрать тот, который они хотят использовать как «ключ». Первый набор – это образец того, что находится в ряд. Я бы хотел, чтобы эти варианты предлагались как выбор для выпадающего списка.

Вы можете загрузить копию того, над чем я работаю, по адресу http://ge.tt/2dbV5Yt/v/0?c

  Магазин № Адрес Город ST Zip Market Radius 
 Private Sub rngHeader_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim selRng As Range Set selRng = Range(rngHeader.Value) '//Erase any items that are in there For I = 1 To cmbKeyCol.ListCount cmbKeyCol.RemoveItem 0 'Remove the top item each time Next I 'Below here is the part that I'm having trouble with. This is one of my attempts, but 'I've changed this thing probably 20 times since asking the question '//Build new list of items from the header row. For Each cell In selRng.Cells cmbKeyCol.AddItem cell.Value Next End Sub 

почему бы вам не использовать это вместо этого:

 cmbkeyCol.RowSource = selRng.Address 'Assuming you already got your range right. 

Это добавляет все элементы в указанном диапазоне вместо повторения через них 1 на 1.

Изменить 1:

 Dim list as variant list = selRng.Value list = Application.Transpose(list) cmbkeyCol.List = list 

Надеюсь, это сработает.

Изменить 2:

 Dim list as variant list = rngHeader.value list = Application.Transpose(list) cmbkeyCol.List = list 

Я предположил, что selRng – это исходный диапазон в Edit 1, а на самом деле это rngHeader. Надеюсь, это работает сейчас.

  • Как заполнить ComboBox с существующим массивом
  • VBA Выбор фильтрованных ячеек
  • Взаимозависимые Comboboxes на Excel VBA
  • Excel VBA Выберите строку, основанную на критериях сопоставления данных с несколькими столбцами в нескольких пользовательских comboboxes
  • Установите значение в первом поле со списком, чтобы включить второй комбинированный блок на веб-странице, используя excel VBA
  • Как отобразить имя файла из имени пути в combobox
  • Почему, если я копирую ячейки в поле со списком в excel на новый, выбор все еще связан и принимает выбранное последнее значение?
  • Пользовательский интерфейс VBA добавляет новые значения в Combobox
  • Вытягивание данных с помощью «Combo Box (Form Control)»
  • Excel - зависимая проверка данных ComboBox на одном клике
  • Алфавитная сортировка и фильтрация комбинированного поля, которое автоматически заполняется с использованием имен листов
  • Давайте будем гением компьютера.