Оглавление
Когда мы работаем с большим набором данных, часто бывает трудно извлечь из него какую-либо выборочную ценность. Более того, вы не можете выбрать более нескольких частей информации одновременно. В этом случае, ListBox является очень полезным решением в Excel Но процесс создания этого ListBox является немного сложным. Поэтому в этой статье мы узнаем, как создать мультивыборку ListBox в excel с помощью нескольких простых шагов.
Скачать Рабочую тетрадь для практических занятий
Получите файл-образец для тренировки.
Multi Select ListBox.xlsmПошаговые процедуры для создания Multi Select ListBox в Excel
Чтобы облегчить процесс, мы разделили его на следующие этапы 8 Итак, без дальнейших задержек, давайте перейдем к следующим шагам, чтобы увидеть, как мы можем создать мультивыборку ListBox в Excel.
Шаг 1: Создание таблицы Excel из набора данных
Сначала нам нужно подготовить набор данных образца и преобразовать его в таблицу. Для этого выполните следующие действия.
- Сначала создайте набор данных с информацией о 10 названий городов и их Общая численность населения из США до 1, июль в Диапазон клеток B5:C14 .
- Теперь щелкните на любой ячейке набора данных и выберите Таблица из Вставка вкладка.
- Затем вы увидите Создать таблицу окно, которое автоматически выбирает диапазон ячеек для создания таблицы.
- В этом окне установите флажок В моей таблице есть заголовки поле и нажмите OK .
- В результате вы увидите, что набор данных преобразован в таблицу.
- Наряду с ним, вы можете найти таблицу в Название таблицы поле под Дизайн стола вкладка
- Вы можете изменить имя таблицы в соответствии со своими предпочтениями.
Читать далее: Как создать зависимый выпадающий список в Excel
Шаг 2: Назовите список наборов данных из менеджера имен
Теперь мы назовем каждую категорию диапазона ячеек из таблицы. Для этого выполните следующие действия.
- Сначала выберите любую ячейку из Колонка B в таблице.
- Затем перейдите к Формулы вкладку и выберите Определить имя .
- После этого вы увидите Новое имя диалоговое окно.
- В этом диалоговом окне укажите любое имя в соответствии с заголовком выбранного столбца в поле Имя коробка.
- Далее нажмите на Относится к в том же окне.
- Затем наведите курсор на заголовок, и на нем появится черная стрелка.
- После этого нажмите левую кнопку мыши, чтобы выбрать пункт Диапазон клеток B5:B14 .
- В результате вы увидите список имен вместе с именем таблицы в окне Относится к поле и нажмите OK .
- Выполните ту же процедуру для Диапазон клеток C5:C14 также.
- Наконец, вы увидите имена в Именная коробка в левом верхнем углу рабочей книги.
Шаг 3: Создание выпадающего списка с проверкой данных
На этом этапе мы создадим выпадающий список из именованных диапазонов с проверкой данных. Это основная часть создания ListBox Мы создадим это в другом рабочем листе рабочей книги. Но вы можете сделать это и в том же рабочем листе. Давайте посмотрим процесс ниже.
- В начале выделите некоторые ячейки таблицы, к которым вы хотите применить Валидация данных .
- Затем перейдите к Данные вкладку и выберите Валидация данных в Инструменты данных секция.
- Далее, в Настройки выберите Список в Разрешить коробка.
- Кроме того, Марк проверил Игнорировать пустоту и Выпадающий элемент в ячейке коробки.
- После этого нажмите на кнопку Источник поле в этом окне и нажмите F3 на клавиатуре.
- В результате вы увидите Название пасты диалоговое окно со списком имен.
- Здесь выберите CityNames из списка и нажмите кнопку OK .
- После этого в поле источника появится название первого списка.
- Наконец, нажмите OK и примените тот же процесс для второго списка имен.
- Наконец, вы увидите, что Валидация данных активируется на выбранных ячейках.
Шаг 4: Вставка кода VBA в проверенный рабочий лист
Теперь наступает решающий момент - вставка VBA код для создания ListBox Ниже приведен процесс.
- Сначала щелкните правой кнопкой мыши на проверенном рабочем листе и выберите Посмотреть код из Контекстное меню .
- Затем вставьте этот код на страницу.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rngDV As Range Dim oldVal As String Dim newVal As String Dim strList As String On Error Resume Next Application.EnableEvents = False Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation) On Error GoTo exitHandler If rngDV Is Nothing Then GoTo exitHandler If Not Intersect(Target, rngDV) Is Nothing Then If Target.Validation.Type = 3Then strList = Target.Validation.Formula1 strList = Right(strList, Len(strList) - 1) strDVList = strList frmDVList.Show End If End If exitHandler: Application.EnableEvents = True End Sub
- Затем перейдите к Вставка вкладку и выберите Модуль .
- На этом этапе имя рабочей книги должно быть выбрано в окне Объект проекта окно.
- Затем переименуйте модуль в modSettings и вставьте этот код.
Option Explicit Global strDVList As String
Благодаря Контекстуры за предоставление кодов.
Шаг 5: Создание формы UserForm со списком и кнопками
На этом этапе мы создадим UserForm для рабочей книги вместе с ListBox и некоторые Командные кнопки Для этого выполните следующие действия.
- Сначала выберите рабочую книгу в Проект-VBAProject окно в Visual Basic редактор.
- Затем перейдите к Вставка вкладку и выберите UserForm .
- В результате вы получите UserForm такой интерфейс.
- Вместе с этим вы также получите Ящик для инструментов окно.
- Отсюда перетащите ListBox к UserForm .
- Затем ListBox Вы можете изменить размер, перетаскивая края поля.
- Затем перетащите CommanButton дважды, чтобы UserForm а также создать 2 кнопки для управления.
- Наконец, окончательный результат выглядит следующим образом.
Шаг 6: Изменение настроек свойств
На этом этапе мы внесем некоторые изменения в свойства каждого компонента ListBox .
- В начале нажмите F4 на Visual Basic редактор, чтобы открыть Окно свойств .
- Затем выберите UserForm и изменить Имя и Надпись вот так.
- Далее выберите ListBox и изменить Имя в соответствии с вашими предпочтениями.
- Кроме того, измените тип ListStyle , MultiSelect и SpecialEffect как показано на рисунке ниже.
- Теперь выберите первую командную кнопку и внесите следующие изменения в свойства.
- Кроме того, отредактируйте свойства второй командной кнопки.
Шаг 7: Применить код VBA к форме UserForm
На этом этапе мы будем применять VBA коды для каждого из компонентов UserForm Давайте посмотрим, как это работает.
- Сначала выберите UserForm и отправляйтесь в Посмотреть выберите вкладку Код .
- Затем вставьте этот код на пустую страницу. Он автоматически запустится, когда на экране появится окно UserForm открывается.
Private Sub UserForm_Initialize() Me.lstDV.RowSource = strDVList End Sub
- После этого вернитесь к UserForm интерфейс, нажав на Объект на Посмотреть вкладка.
- Теперь выполните следующие действия, чтобы вставить этот код для OK кнопка.
Private Sub cmdOK_Click() Dim strSelItems As String Dim lCountList As Long Dim strSep As String Dim strAdd As String Dim bDup As Boolean On Error Resume Next strSep = ", " With Me.lstDV For lCountList = 0 To .ListCount - 1 If .Selected(lCountList) Then strAdd = .List(lCountList) Else strAdd = "" End If If strSelItems = "" Then strSelItems = strAdd Else If strAdd "" Then strSelItems = strSelItems_ & strSep & strAdd End If End If Next lCountList End With With With ActiveCell If .Value "" Then .Value = ActiveCell.Value _ & strSep & strSelItems Else .Value = strSelItems End If End With Unload Me End Sub
- Вместе с этим введите следующий код для Закрыть кнопку с помощью того же процесса.
Private Sub cmdClose_Click() Unload Me End Sub
- Наконец, нажмите Ctrl + S чтобы сохранить его и закрыть окно.
Благодаря Контекстуры за помощь с кодами.
Шаг 8: Мультивыбор из ListBox
Наконец, мы успешно создали ListBox Чтобы проверить, работает код или нет, просто выполните следующие действия.
- Сначала выберите Клетка B5 где мы применили Валидация данных .
- Сразу после этого ListBox появится команда Выберите элемент из списка .
- В этом окне выберите несколько имен из списка.
- Затем нажмите OK .
- Наконец, вы успешно выполнили мультивыбор из ListBox и каждое имя разделяется символом Запятая ( , ).
О чем следует помнить
- Именованные диапазоны не будет создавать Валидация данных правило, если они введены как ссылка на ячейку или с разделителями.
- Сайт Глобальная переменная применяется для обоих UserForm и Рабочая таблица VBA код. Любое активное имя ячейки изначально передает код strDVList во временный диапазон, а затем используется как RowSource для ListBox когда пользователь открывает UserForm .
- Для удобства выбора можно объединить несколько диапазонов в одно имя.
Заключение
На сегодня это все. Надеюсь, что эти длинные, но простые шаги о том, как создать ListBox с несколькими вариантами выбора в excel сделали эту тему немного проще для вас. дайте нам знать ваши отзывы в поле для комментариев. следить ExcelWIKI для других статей, подобных этой.