Note: The other languages of the website are Google-translated. Back to English

Как создать раскрывающийся список с несколькими флажками в Excel?

Многие пользователи Excel, как правило, создают раскрывающийся список с несколькими флажками, чтобы выбирать несколько элементов из списка за раз. На самом деле вы не можете создать список с несколькими флажками с проверкой данных. В этом руководстве мы покажем вам два метода создания раскрывающегося списка с несколькими флажками в Excel.

Используйте поле списка для создания раскрывающегося списка с несколькими флажками
A: Создайте список с исходными данными
B: Назовите ячейку, в которой вы будете размещать выбранные элементы
C: вставить форму, чтобы помочь вывести выбранные элементы
Легко создавайте раскрывающийся список с флажками с помощью замечательного инструмента
Дополнительные руководства для раскрывающегося списка ...


Используйте поле списка для создания раскрывающегося списка с несколькими флажками

Как показано на скриншоте ниже, на текущем листе все имена в диапазоне A2: A11 будут исходными данными для списка. При нажатии на кнопку в ячейке C4 можно вывести выбранные элементы, и все выбранные элементы в списке будут отображаться в ячейке E4. Для этого сделайте следующее.

A. Создайте список с исходными данными

1. Нажмите разработчик > Вставить > Список (Active X Control). Смотрите скриншот:

2. Нарисуйте список на текущем листе, щелкните его правой кнопкой мыши и выберите Свойства из контекстного меню.

3. в Свойства диалоговое окно необходимо настроить следующим образом.

  • 3.1 В ListFillRange введите диапазон источников, который будет отображаться в списке (здесь я ввожу диапазон A2: A11);
  • 3.2 В Стиль списка выберите 1 - вариант стиля fmList;
  • 3.3 В Выбор из нескольких вариантов выберите 1 - fmMultiSelectMulti;
  • 3.4 Закройте Свойства диалоговое окно. Смотрите скриншот:

B: Назовите ячейку, в которой вы будете размещать выбранные элементы

Если вам нужно вывести все выбранные элементы в указанную ячейку, например E4, сделайте следующее.

1. Выберите ячейку E4, введите ЛистбоксВывод в Имя Box и нажмите Enter ключ.

C. Вставьте форму, чтобы помочь вывести выбранные элементы

1. Нажмите Вставить > Формы > Прямоугольник. Смотрите скриншот:

2. Нарисуйте прямоугольник на листе (здесь я рисую прямоугольник в ячейке C4). Затем щелкните прямоугольник правой кнопкой мыши и выберите Назначить макрос из контекстного меню.

3. в Назначить макрос диалогового окна, нажмите Новое кнопку.

4. В дебюте Microsoft Visual Basic для приложений окна, замените исходный код в Модули окно с приведенным ниже кодом VBA.

Код VBA: создать список с несколькими флажками

Sub Rectangle1_Click()
'Updated by Extendoffice 20200730
Dim xSelShp As Shape, xSelLst As Variant, I, J As Integer
Dim xV As String
Set xSelShp = ActiveSheet.Shapes(Application.Caller)
Set xLstBox = ActiveSheet.ListBox1
If xLstBox.Visible = False Then
    xLstBox.Visible = True
    xSelShp.TextFrame2.TextRange.Characters.Text = "Pickup Options"
    xStr = ""
    xStr = Range("ListBoxOutput").Value
    
    If xStr <> "" Then
         xArr = Split(xStr, ";")
    For I = xLstBox.ListCount - 1 To 0 Step -1
        xV = xLstBox.List(I)
        For J = 0 To UBound(xArr)
            If xArr(J) = xV Then
              xLstBox.Selected(I) = True
              Exit For
            End If
        Next
    Next I
    End If
Else
    xLstBox.Visible = False
    xSelShp.TextFrame2.TextRange.Characters.Text = "Select Options"
    For I = xLstBox.ListCount - 1 To 0 Step -1
        If xLstBox.Selected(I) = True Then
        xSelLst = xLstBox.List(I) & ";" & xSelLst
        End If
    Next I
    If xSelLst <> "" Then
        Range("ListBoxOutput") = Mid(xSelLst, 1, Len(xSelLst) - 1)
    Else
        Range("ListBoxOutput") = ""
    End If
End If
End Sub

Примечание: В коде Прямоугольник1 имя формы; СписокBox1 это имя списка; Выберите параметры и Варианты получения отображаемые тексты фигуры; и ЛистбоксВывод - имя диапазона выходной ячейки. Вы можете изменить их в зависимости от ваших потребностей.

5. Нажмите другой + Q клавиши одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно.

6. Нажмите кнопку прямоугольника, чтобы свернуть или развернуть список. Когда поле списка расширяется, отметьте элементы в поле списка, а затем снова щелкните прямоугольник, чтобы вывести все выбранные элементы в ячейку E4. См. Демонстрацию ниже:

7. Затем сохраните книгу как Книга Excel MacroEnable для повторного использования кода в будущем.


Создавайте раскрывающийся список с флажками с помощью замечательного инструмента

Вышеупомянутый метод слишком многоэтапный, чтобы с ним легко справиться. Здесь очень рекомендую Раскрывающийся список с флажками полезности Kutools для Excel чтобы помочь вам легко создать раскрывающийся список с флажками в указанном диапазоне, текущем листе, текущей книге или всех открытых книгах в зависимости от ваших потребностей. См. Демонстрацию ниже:
Скачайте и попробуйте прямо сейчас! (30-дневная бесплатная трасса)

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

1. Откройте лист, в котором установлен раскрывающийся список проверки данных, щелкните Кутулс > Раскрывающийся список > Раскрывающийся список с флажками > Настройки. Смотрите скриншот:

2. в Раскрывающийся список с флажками Настройки диалоговое окно, настройте следующим образом.

  • 2.1). Обращаться к в разделе укажите область применения, в которой вы будете создавать флажки для элементов в раскрывающемся списке. Вы можете указать определенный диапазон, текущий рабочий лист, текущая рабочая тетрадь or все открытые книги в зависимости от потребностей.
  • 2.2). режим раздел выберите стиль, в котором вы хотите выводить выбранные элементы;
  • Вот берет Изменить в качестве примера, если вы выберете этот вариант, значение ячейки будет изменено в зависимости от выбранных элементов.
  • 2.3). Разделитель поле введите разделитель, который вы будете использовать для разделения нескольких элементов;
  • 2.4). Направление текста раздел выберите направление текста в зависимости от ваших потребностей;
  • 2.5) Нажмите OK кнопку.

3. Последний шаг, нажмите Кутулс > Раскрывающийся список > Раскрывающийся список с флажками > Включить раскрывающийся список флажков чтобы активировать эту функцию.

С этого момента, когда вы щелкаете ячейки с раскрывающимся списком в указанной области, всплывает список, пожалуйста, выберите элементы, установив флажки для вывода в ячейку, как показано в демонстрации ниже (в качестве примера возьмите режим изменения ).

Для получения дополнительных сведений об этой функции, пожалуйста, посетите здесь.

  Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


Статьи по теме:

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

Создать раскрывающийся список из другой книги в Excel
Создать раскрывающийся список проверки данных среди листов в книге довольно просто. Но если данные списка, необходимые для проверки данных, находятся в другой книге, что вы будете делать? В этом руководстве вы узнаете, как подробно создать раскрывающийся список из другой книги в Excel.

Создайте раскрывающийся список с возможностью поиска в Excel
Для раскрывающегося списка с многочисленными значениями найти подходящий - непростая задача. Ранее мы ввели метод автоматического заполнения раскрывающегося списка при вводе первой буквы в раскрывающемся списке. Помимо функции автозаполнения, вы также можете сделать раскрывающийся список доступным для поиска для повышения эффективности работы при поиске правильных значений в раскрывающемся списке. Чтобы сделать раскрывающийся список доступным для поиска, попробуйте метод, описанный в этом руководстве.

Автоматическое заполнение других ячеек при выборе значений в раскрывающемся списке Excel
Допустим, вы создали раскрывающийся список на основе значений в диапазоне ячеек B8: B14. При выборе любого значения в раскрывающемся списке необходимо, чтобы соответствующие значения в диапазоне ячеек C8: C14 автоматически заполнялись в выбранной ячейке. Для решения проблемы методы, описанные в этом руководстве, окажут вам услугу.

Дополнительные руководства для раскрывающегося списка ...


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office / Excel 2007-2019 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (67)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Это фантастика. Но будет лучше, если множественный выбор можно будет разместить там, где активен курсор. Не обязательно то, что указано в коде.
Газали Якубу
Этот комментарий был сведен к минимуму модератором на сайте
Это именно то, что я искал, можно ли изменить код, чтобы выбранные данные отображались в отдельных ячейках вниз по столбцу? поэтому вместо: понедельник, вторник, среда отображать как. понедельник вторник среда
Крис М
Этот комментарий был сведен к минимуму модератором на сайте
Это именно то, что я искал, есть ли модификация кода, которая поместит следующий выбор из списка в следующую строку. например, один два три вместо : один, два, три
Крис М
Этот комментарий был сведен к минимуму модератором на сайте
не могли бы вы объяснить, как вы добавили ListBoxOutput в ячейку E4
Harshit
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте, как можно скопировать этот список для нескольких ячеек. Просто скопировать и вставить не работает. Не могли бы вы объяснить, например, в каждой ячейке (E5, E6, E7, E8,...), как я могу поставить это поле выбора?
бесполезный
Этот комментарий был сведен к минимуму модератором на сайте
не могли бы вы объяснить, как я могу легко скопировать этот список на 100 строк? (отдельные списки для каждой из 100 строк)
бесполезный
Этот комментарий был сведен к минимуму модератором на сайте
После завершения вывода и повторного нажатия кнопки предыдущие выбранные элементы в списке не могут быть изменены. Как решить?
ВБР слабее
Этот комментарий был сведен к минимуму модератором на сайте
Благодарю вас! Это здорово, и это работает!
МартСкот
Этот комментарий был сведен к минимуму модератором на сайте
Я новичок в этом, но может ли кто-нибудь сказать мне, как создать список с множественным выбором, который будет открываться, например, когда я выбираю имя. Я хочу, чтобы список помещался в файл single.
ПРИМЕР. У меня есть список имен с контактной информацией и т. д. Я хочу создать дубликат Listbox для каждого имени в моем списке. Я хотел бы, чтобы он открывался автоматически, когда я выбираю имя, и сворачивался обратно в ячейку, когда я переходил к другой строке информации. Пожалуйста, порекомендуйте. Заранее спасибо.
похотливый
Этот комментарий был сведен к минимуму модератором на сайте
Дорогой Рэнди,
Извините, не могу решить эту проблему.
кристалл
Этот комментарий был сведен к минимуму модератором на сайте
Он отлично работает в соответствии с инструкциями, однако, если я защищаю лист, он выдает ошибку. Любое обходное решение для этого?
Амит Суд
Этот комментарий был сведен к минимуму модератором на сайте
Работают идеально по инструкции. Но как я могу использовать это на защищенном листе. В настоящее время, если я использую это после защиты листа, он выдает мне ошибку «Ошибка времени выполнения '-2147024809 (80070057)': указанное значение выходит за пределы диапазона»
Амит Суд
Этот комментарий был сведен к минимуму модератором на сайте
Уважаемый Амит Суд,
Перед защитой рабочего листа отформатируйте ячейку вывода как разблокированную, а затем примените приведенный ниже код VBA. Спасибо за ваш комментарий.

Подпрямоугольник2_Click()
Dim xSelShp как форма, xSelLst как вариант, I как целое число
On Error Resume Next
Установите xSelShp = ActiveSheet.Shapes(Application.Caller)
Установите xLstBox = ActiveSheet.ListBox1
Если xLstBox.Visible = Ложь Тогда
xLstBox.Visible = Истина
xSelShp.TextFrame2.TextRange.Characters.Text = "Параметры захвата"
Еще
xLstBox.Visible = Ложь
xSelShp.TextFrame2.TextRange.Characters.Text = "Выбрать параметры"
Для I = xLstBox.ListCount - от 1 до 0 Шаг -1
Если xLstBox.Selected(I) = True Тогда
xSelLst = xLstBox.List(I) & ";" & xSellst
End If
Далее я
Если xSelLst <> "" Тогда
Range("ListBoxOutput") = Mid(xSelLst, 1, Len(xSelLst) - 1)
Еще
Диапазон("СписокВывод") = ""
End If
End If
End Sub
кристалл
Этот комментарий был сведен к минимуму модератором на сайте
«Я создал файл, используя окно списка ActiveX, как вам объяснили, там я ввел некоторые данные и добавил некоторые свойства. Я проверил некоторые данные, используя флажок в списке, и сохранил и вышел из файла. Но пока повторно открывая файл, он не показывает никаких проверенных данных ... может ли кто-нибудь дать мне предложение сохранить эти обновления».
Может ли кто-нибудь помочь мне, пожалуйста.
Техническая поддержка
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Поместите приведенный ниже код VBA в окно кода ThisWorkbook.
В коде Sheet6 — это имя рабочего листа по умолчанию, которое содержит поле списка, в котором вы хотите сохранить выбор, как показано ниже. А ListBox1 — это имя списка. Пожалуйста, измените их по мере необходимости.

Private Sub Workbook_BeforeSave (ByVal SaveAsUI As Boolean, Cancel As Boolean)
Позвонить СохранитьВыборы
End Sub

Private Sub Workbook_Open ()
Вызов RestoreSelections
End Sub

Частная подпрограмма SaveSelections()

Dim arr() As Variant, i As Long, j As Long

С Sheet6.OLEObjects("ListBox1").Объект
Если .ListIndex > 0 Тогда
Для i = 0 To .ListCount - 1
Если .Выбрано(i) Тогда
j = j + 1
ReDim Preserve arr (от 1 до j)
обр (j) = я
End If
Далее
Names.Add Name:="Selections", RefersTo:=arr, Visible:=False
End If
Конец с

End Sub

Частная подпрограмма RestoreSelections()

Dim arr как вариант, i как целое число

обр = [Выборки]

С Sheet6.OLEObjects("ListBox1").Объект
Для i = 1 To UBound(arr)
.Выбрано(обр(я)) = Истина
Далее
Конец с

End Sub
кристалл
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо за ответ, сэр, но он не работает в случае с моим файлом, не могли бы вы отправить свой почтовый идентификатор, чтобы я мог отправить вам свой файл по почте.
заранее спасибо
Техническая поддержка
Этот комментарий был сведен к минимуму модератором на сайте
Дорогая Манджуша Исак,
Отправьте файл на адрес zxm@addin99.com. Надеюсь, я смогу помочь.
кристалл
Этот комментарий был сведен к минимуму модератором на сайте
Кроме того, вам необходимо сохранить книгу как книгу Excel с поддержкой макросов и активировать код каждый раз, когда вы меняете выбор в списке.
кристалл
Этот комментарий был сведен к минимуму модератором на сайте
я хочу автоматически обновлять имена в разных столбцах. возможно ли это, если возможно, пожалуйста, поделитесь со мной кодом.
Милинд Гади
Этот комментарий был сведен к минимуму модератором на сайте
УДИВИТЕЛЬНО работает, но после того, как я закрою Excel и снова открою его, флажок из флажка исчезнет, ​​поэтому, если я нажму кнопку, весь список исчезнет, ​​​​любое решение для этого
пожалуйста, кто-нибудь, помогите мне
Большое спасибо заранее
ангел
Этот комментарий был сведен к минимуму модератором на сайте
Дорогой Ангел,
Мы опубликовали статью "Как сохранить или сохранить выбор списков ActiveX в Excel?" который вводит метод сохранения выбора списков после закрытия и повторного открытия книги.
Вы можете перейти по этой ссылке, чтобы получить больше информации: https://www.extendoffice.com/documents/excel/5051-excel-listbox-save-selection.html
кристалл
Этот комментарий был сведен к минимуму модератором на сайте
удивительно, как он работает, но у меня есть одна проблема: после того, как я сохранил файл и открыл его снова, все проверки из списка флажков исчезли
не могли бы вы помочь мне с этим большое спасибо
отметка
Этот комментарий был сведен к минимуму модератором на сайте
Кроме того, он всегда меняет размер и форму списка после сохранения и повторного открытия файла, если у кого-то есть решение этой проблемы, пожалуйста, помогите мне.

Благодарю вас так много
отметка
Этот комментарий был сведен к минимуму модератором на сайте
Дорогой Марк,
Мы опубликовали статью "Как сохранить или сохранить выбор списков ActiveX в Excel?" который вводит метод сохранения выбора списков после закрытия и повторного открытия книги.
Вы можете перейти по этой ссылке, чтобы получить больше информации: https://www.extendoffice.com/documents/excel/5051-excel-listbox-save-selection.html
кристалл
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,

Мне интересно, есть ли способ направить параметры выбора более чем в одну ячейку (не только E4) или сделать выбор раскрывающимся контрольным списком, чтобы я мог выбирать несколько вариантов из контрольного списка, но делать это неоднократно и независимо от другие выборы, которые я сделал. Например, как мне использовать один и тот же список вариантов получения для ввода другого набора элементов в E5, E6, E7 и т. д. из одного и того же списка выбора.

спасибо
Элизабет Кацман
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Лиз Катс,
Пожалуйста, попробуйте приведенный ниже код. Надеюсь, я смогу помочь. Спасибо.

Подпрямоугольник2_Click()

'Обновлено Extendoffice 20200529

Dim xSelShp как форма, xSelLst как вариант, i как целое число

Установите xSelShp = ActiveSheet.Shapes(Application.Caller)

Установите xLstBox = ActiveSheet.ListBox1

Dim xRg как диапазон

Dim xCount, xFNum, xR, xC как целое число

Dim xStr как строка

Если xLstBox.Visible = Ложь Тогда

xLstBox.Visible = Истина

xSelShp.TextFrame2.TextRange.Characters.Text = "Параметры захвата"

Еще

xLstBox.Visible = Ложь

xSelShp.TextFrame2.TextRange.Characters.Text = "Выбрать параметры"

Установить xRg = диапазон ("ListBoxOutput")

xCount = xLstBox.ListCount - 1

xстр = ""

Для i = xLstBox.ListCount - от 1 до 0 Шаг -1

Если xLstBox.Selected(i) = True Тогда

xStr = xLstBox.List(i) & ";" & xStr

End If

Затем я



Если xRg.Value = "" Тогда

xRg.Value = xStr

Еще

Установите xRg = xRg.Offset (1, 0)

Делать, пока xRg.Value <> ""

Установите xRg = xRg.Offset (1, 0)

Петля

xRg.Value = xStr

End If

End If

End Sub
кристалл
Этот комментарий был сведен к минимуму модератором на сайте
Он работает нормально, большое спасибо за вашу помощь. У меня есть одна проблема: все выходные данные поступают в одну и ту же ячейку E4, как мы можем получить выходные данные в разных ячейках, например: вывод для C4 в E4, C5 в E5, C6 в E6 и т. д.
биной
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Проблема, которую вы упомянули, пока не может быть решена.
кристалл
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день! Прошу помочь.
Как сделать так, чтобы каждый отдельный выходило на новую государственную власть? чтобы по выходило по вертикали?
алкат
Этот комментарий был сведен к минимуму модератором на сайте
ПОМОЩЬ!!! как вывести в разных диапазонах (по вертикали)?
Alcatel
Этот комментарий был сведен к минимуму модератором на сайте
Подпрямоугольник2_Click()
'Обновлено Extendoffice 20190924
Dim xSelShp как форма, xSelLst как вариант, I как целое число
Dim xRg как диапазон
Установите xSelShp = ActiveSheet.Shapes(Application.Caller)
Установите xLstBox = ActiveSheet.ListBox1
Если xLstBox.Visible = Ложь Тогда
xLstBox.Visible = Истина
xSelShp.TextFrame2.TextRange.Characters.Text = "Параметры захвата"
Еще
xLstBox.Visible = Ложь
xSelShp.TextFrame2.TextRange.Characters.Text = "Выбрать параметры"
Установить xRg = диапазон ("ListBoxOutput")
Для I = 0 Для xLstBox.ListCount - 1
Если xLstBox.Selected(I) = True Тогда
xSelLst = xLstBox.List(I)
xRg.Value = Mid(xSelLst, 1, Len(xSelLst))
Установите xRg = xRg.Offset (1, 0)
End If
Далее я
End If
End Sub
Хеа Перес
Этот комментарий был сведен к минимуму модератором на сайте
Como puedo replicar éste ejercicio en las filas inferiores?
Как я могу повторить это упражнение в строках ниже?
Джимми
Здесь еще нет комментариев
Загрузить ещё
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0  Характеристики
Предлагаемые места