Как заполнить поле со списком данными из именованного диапазона в Excel?
Вы можете задать поле со списком (элемент управления ActiveX), указав определённый диапазон данных через свойство **ListFillRange**. Но знаете ли вы, как заполнить такое поле данными из именованного диапазона в Excel? Предположим, вы присвоили имя диапазону ячеек на листе и теперь хотите использовать это имя в поле со списком. При выборе значения в одном поле со списком все ячейки из соответствующего именованного диапазона автоматически отобразятся в другом поле со списком. В этой статье описан метод решения данной задачи с помощью кода VBA.
Заполнение поля со списком данными именованного диапазона с помощью кода VBA
Заполнение поля со списком данными именованного диапазона с помощью кода VBA
Выполните следующие действия, чтобы заполнить поле со списком данными из именованного диапазона в Excel.
1. Выделите все заголовки (в данном случае — A1:E1) на листе, а затем введите имя в Поле имени, как показано на скриншоте ниже.

2. Выделите данные каждого столбца без заголовков и присвойте каждому столбцу уникальное имя в Поле имени. См. скриншот:
В этом примере диапазонам A2:A8, B2:B8, C2:C8, D2:D8 и E2:E8 присвоены имена Date, Shop, Items, Sales и Weekday соответственно.

3. Затем вставьте поле со списком, последовательно выбрав Разработчик > Вставить > Поле со списком (элемент управления ActiveX). См. скриншот:

4. Повторите шаг 3, чтобы добавить на лист ещё одно поле со списком.

5. Щёлкните правой кнопкой мыши по ярлыку листа и выберите в контекстном меню Просмотреть код. См. скриншот:

6. В открывшемся окне Microsoft Visual Basic for Applications скопируйте и вставьте приведённый ниже код VBA в окно кода.
Код VBA: заполнение поля со списком данными именованного диапазона
Private Sub ComboBox1_Change()
'Updated by Extendoffice 2018/1/30
Dim xRg As Range
Set xRg = Range(Me.ComboBox1.Text)
Me.ComboBox2.List = Application.WorksheetFunction.Transpose(xRg)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Set xRg = Range("Headers")
Me.ComboBox1.List = Application.WorksheetFunction.Transpose(xRg)
End Sub Примечание: в коде ComboBox1 — это имя поля со списком, в котором отображаются все имена ячеек, а ComboBox2 — имя поля со списком, в которое подгружаются данные из указанного именованного диапазона. «Headers» — это имя ячейки, созданное на первом шаге.
7. Отключите режим конструктора, нажав Разработчик > Режим конструктора.
8. Щёлкните по любой ячейке на листе, чтобы активировать код. Нажмите стрелку в первом поле со списком — и вы увидите все именованные диапазоны, отображаемые внутри. См. скриншот:

При выборе именованного диапазона в первом поле со списком соответствующие данные ячеек будут отображаться во втором поле со списком, как показано на скриншоте ниже:

Легко создавайте Раскрывающийся список с флажками в Excel:
Утилита Добавить флажки в выпадающий список из Kutools для Excel позволяет легко создавать раскрывающиеся списки с флажками — в ограниченном диапазоне, на текущем листе, в текущей книге или во всех открытых книгах, в зависимости от ваших задач.
Скачайте и попробуйте прямо сейчас! (30-дневная бесплатная пробная версия)
См. также:
- Как скопировать значение поля со списком в активную ячейку Excel?
- Как отобразить формат даты в выпадающем списке Excel?
- Как запретить или отключить ввод текста в поле со списком в Excel?
- Как заполнить поле со списком указанными данными при открытии книги Excel?
- Как автоматически заполнять другие ячейки при выборе значения из раскрывающегося списка в Excel?
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек