Выпадающий список в ячейке листа
Видео
У кого мало времени и нужно быстро ухватить суть — смотрим обучающее видео:
Кому интересны подробности и нюансы всех описанных способов — дальше по тексту.
Способ 1. Примитивный
Один щелчок правой кнопкой мыши по пустой ячейке под столбцом с данными, команда контекстного меню Выбрать из раскрывающегося списка (Choose from drop-down list) или нажать сочетание клавиш ALT+стрелка вниз. Способ не работает, если ячейку и столбец с данными отделяет хотя бы одна пустая строка или вам нужен товар, который еще ни разу не вводился выше:
Способ 2. Стандартный
- Выделите ячейки с данными, которые должны попасть в выпадающий список (например, наименованиями товаров).
- Если у вас Excel 2003 или старше — выберите в меню Вставка — Имя — Присвоить (Insert — Name — Define), если Excel 2007 или новее — откройте вкладку Формулы (Formulas) и воспользуйтесь кнопкой Диспетчер имен (Name Manager), затем Создать. Введите имя (можно любое, но обязательно без пробелов и начать с буквы!) для выделенного диапазона (например Товары). Нажмите ОК.
- Выделите ячейки (можно сразу несколько), в которых хотите получить выпадающий список и выберите в меню (на вкладке) Данные — Проверка (Data — Validation). Из выпадающего списка Тип данных (Allow) выберите вариант Список (List) и введите в строчку Источник (Source) знак равенства и имя диапазона (т.е. =Товары).
Нажмите ОК.
Все! Наслаждайтесь!
Важный нюанс. В качестве источника данных для списка может выступать и динамический именованный диапазон, например прайс-лист. Тогда при дописывании новых товаров к прайсу, они будут автоматически добавляться к выпадающему списку. Еще одним часто используемым трюком для таких списков является создание связанных выпадающих списков (когда содержимое одного списка меняется в зависимости от выбора в другом).
Способ 3. Элемент управления
Этот способ представляет собой вставку на лист нового объекта — элемента управления «поле со списком» с последующей привязкой его к диапазонам на листе. Для этого:
- В Excel 2007/2010 откройте вкладку Разработчик (Developer). В более ранних версиях — панель инструментов Формы (Forms) через меню Вид — Панели инструментов — Формы (View — Toolbars — Forms). Если этой вкладки не видно, то нажмите кнопку Офис — Параметры Excel — флажок Отображать вкладку Разработчик на ленте (Office Button — Excel Options — Show Developer Tab in the Ribbon)
- Найдите значок выпадающего списка среди элементов управления форм (не ActiveX!). Ориентируйтесь по всплывающим подсказкам — Поле со списком:
Щелкните по значку и нарисуйте небольшой горизонтальный прямоугольник — будущий список. - Щелкните по нарисованному списку правой кнопкой мыши и выберите команду Формат объекта (Format control). В появившемся диалоговом окне задайте
- Формировать список по диапазону — выделите ячейки с наименованиями товаров, которые должны попасть в список
- Связь с ячейкой — укажите ячейку куда нужно выводить порядковый номер выбранного пользователем элемента.
- Количество строк списка — сколько строк показывать в выпадающем списке. По умолчанию — 8, но можно больше, чего не позволяет предыдущий способ.
После нажатия на ОК списком можно пользоваться.
Чтобы вместо порядкового номера элемента выводилось его название можно дополнительно использовать функцию ИНДЕКС (INDEX), которая умеет выводить содержимое нужной по счету ячейки из диапазона:
Способ 4. Элемент ActiveX
Этот способ частично напоминает предыдущий. Основное отличие в том, что на лист добавляется не элемент управления, а элемент ActiveX «Поле со списком» из раскрывающегося набора под кнопкой Вставить (Insert) с вкладки Разработчик (Developer):
Механизм добавления тот же — выбираем объект из списка и рисуем его на листе. А вот дальше начинаются серьезные отличия от предыдущего способа.
Во-первых, созданный выпадающий ActiveX список может находится в двух принципиально разных состояниях — режиме отладки, когда можно настраивать его параметры и свойства, двигать его по листу и менять размеры и — режиме ввода, когда единственное, что можно — выбирать из него данные. Переключение между этими режимами происходит с помощью кнопки Режим Конструктора (Design Mode) на вкладке Разработчик (Developer):
Если эта кнопка нажата, то мы можем настраивать параметры выпадающего списка, нажав соседнюю кнопку Свойства (Properties), которая откроет окно со списком всех возможных настроек для выделенного объекта:
Самые нужные и полезные свойства, которые можно и нужно настроить:
- ListFillRange — диапазон ячеек, откуда берутся данные для списка. Выделить мышью диапазон он не даст, надо просто вписать его руками с клавиатуры (например, Лист2!A1:A5)
- LinkedCell — связанная ячейка, куда будет выводиться выбранный из списка элемент
- ListRows — количество отображаемых строк
- Font — шрифт, размер, начертание (курсив, подчеркивание и т.д. кроме цвета)
- ForeColor и BackColor — цвет текста и фона, соответственно
Большим и жирным плюсом этого способа является возможность быстрого перехода к нужному элементу в списке при вводе первых букв с клавиатуры(!), чего нет у всех остальных способов. Приятным моментом, также, является возможность настройки визуального представления (цветов, шрифтов и т.д.)
При использовании этого способа, также возможно указывать в качестве ListFillRange не только одномерные диапазоны. Можно, например задать диапазон из двух столбцов и нескольких строк, указав дополнительно, что выводить нужно два столбца (свойство ColumnCount=2). Тогда можно получить весьма привлекательные результаты, окупающие все потраченные на дополнительные настройки усилия:
Итоговая сравнительная таблица всех способов
Способ 1. Примитивный | Способ 2. Стандартный | Способ 3. Элемент управления | Способ 4. Элемент ActiveX | |
Сложность | низкая | средняя | высокая | высокая |
Возможность настройки шрифта, цвета и т.д. | нет | нет | нет | да |
Количество отображаемых строк | всегда 8 | всегда 8 | любое | любое |
Быстрый поиск элемента по первым буквам | нет | нет | нет | да |
Необходимость использования дополнительной функции ИНДЕКС | нет | нет | да | нет |
Возможность создания связанных выпадающих списков | нет | да | нет | нет |
Ссылки по теме:
- Выпадающий список с данными из другого файла
- Создание зависимых выпадающих списков
- Автоматическое создание выпадающих списков надстройкой PLEX
- Выбор фото из выпадающего списка
- Автоматическое удаление уже использованных элементов из выпадающего списка
- Выпадающий список с автоматическим добавлением новых элементов
Под выпадающим списком понимается содержание в одной ячейке нескольких значений. Когда пользователь щелкает по стрелочке справа, появляется определенный перечень. Можно выбрать конкретное.
Очень удобный инструмент Excel для проверки введенных данных. Повысить комфорт работы с данными позволяют возможности выпадающих списков: подстановка данных, отображение данных другого листа или файла, наличие функции поиска и зависимости.
Создание раскрывающегося списка
Путь: меню «Данные» — инструмент «Проверка данных» — вкладка «Параметры». Тип данных – «Список».
Ввести значения, из которых будет складываться выпадающий список, можно разными способами:
- Вручную через «точку-с-запятой» в поле «Источник».
- Ввести значения заранее. А в качестве источника указать диапазон ячеек со списком.
- Назначить имя для диапазона значений и в поле источник вписать это имя.
Любой из вариантов даст такой результат.
Выпадающий список в Excel с подстановкой данных
Необходимо сделать раскрывающийся список со значениями из динамического диапазона. Если вносятся изменения в имеющийся диапазон (добавляются или удаляются данные), они автоматически отражаются в раскрывающемся списке.
- Выделяем диапазон для выпадающего списка. В главном меню находим инструмент «Форматировать как таблицу».
- Откроются стили. Выбираем любой. Для решения нашей задачи дизайн не имеет значения. Наличие заголовка (шапки) важно. В нашем примере это ячейка А1 со словом «Деревья». То есть нужно выбрать стиль таблицы со строкой заголовка. Получаем следующий вид диапазона:
- Ставим курсор в ячейку, где будет находиться выпадающий список. Открываем параметры инструмента «Проверка данных» (выше описан путь). В поле «Источник» прописываем такую функцию:
Протестируем. Вот наша таблица со списком на одном листе:
Добавим в таблицу новое значение «елка».
Теперь удалим значение «береза».
Осуществить задуманное нам помогла «умная таблица», которая легка «расширяется», меняется.
Теперь сделаем так, чтобы можно было вводить новые значения прямо в ячейку с этим списком. И данные автоматически добавлялись в диапазон.
- Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК.
- Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
- Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения.
- Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).
- Сохраняем, установив тип файла «с поддержкой макросов».
- Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».
Private Sub Worksheet_Change(ByVal Target As Range) Dim lReply As Long If Target.Cells.Count > 1 Then Exit Sub If Target.Address = "$C$2" Then If IsEmpty(Target) Then Exit Sub If WorksheetFunction.CountIf(Range("Деревья"), Target) = 0 Then lReply = MsgBox("Добавить введенное имя " & _ Target & " в выпадающий список?", vbYesNo + vbQuestion) If lReply = vbYes Then Range("Деревья").Cells(Range("Деревья").Rows.Count + 1, 1) = Target End If End If End If End Sub
Когда мы введем в пустую ячейку выпадающего списка новое наименование, появится сообщение: «Добавить введенное имя баобаб в выпадающий список?».
Нажмем «Да» и добавиться еще одна строка со значением «баобаб».
Выпадающий список в Excel с данными с другого листа/файла
Когда значения для выпадающего списка расположены на другом листе или в другой книге, стандартный способ не работает. Решить задачу можно с помощью функции ДВССЫЛ: она сформирует правильную ссылку на внешний источник информации.
- Делаем активной ячейку, куда хотим поместить раскрывающийся список.
- Открываем параметры проверки данных. В поле «Источник» вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).
Имя файла, из которого берется информация для списка, заключено в квадратные скобки. Этот файл должен быть открыт. Если книга с нужными значениями находится в другой папке, нужно указывать путь полностью.
Как сделать зависимые выпадающие списки
Возьмем три именованных диапазона:
Это обязательное условие. Выше описано, как сделать обычный список именованным диапазоном (с помощью «Диспетчера имен»). Помним, что имя не может содержать пробелов и знаков препинания.
- Создадим первый выпадающий список, куда войдут названия диапазонов.
- Когда поставили курсор в поле «Источник», переходим на лист и выделяем попеременно нужные ячейки.
- Теперь создадим второй раскрывающийся список. В нем должны отражаться те слова, которые соответствуют выбранному в первом списке названию. Если «Деревья», то «граб», «дуб» и т.д. Вводим в поле «Источник» функцию вида =ДВССЫЛ(E3). E3 – ячейка с именем первого диапазона.
- Создаем стандартный список с помощью инструмента «Проверка данных». Добавляем в исходный код листа готовый макрос. Как это делать, описано выше. С его помощью справа от выпадающего списка будут добавляться выбранные значения.
- Чтобы выбранные значения показывались снизу, вставляем другой код обработчика.
- Чтобы выбираемые значения отображались в одной ячейке, разделенные любым знаком препинания, применим такой модуль.
- На вкладке «Разработчик» находим инструмент «Вставить» – «ActiveX». Здесь нам нужна кнопка «Поле со списком» (ориентируемся на всплывающие подсказки).
- Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка.
- Жмем «Свойства» – открывается перечень настроек.
- Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.
Выбор нескольких значений из выпадающего списка Excel
Бывает, когда из раскрывающегося списка необходимо выбрать сразу несколько элементов. Рассмотрим пути реализации задачи.
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("Е2:Е9")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False If Len(Target.Offset(0, 1)) = 0 Then Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("Н2:К2")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False If Len(Target.Offset(1, 0)) = 0 Then Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then
Application.EnableEvents = False
newVal = Target
Application.Undo
oldval = Target
If Len(oldval) <> 0 And oldval <> newVal Then
Target = Target & "," & newVal
Else
Target = newVal
End If
If Len(newVal) = 0 Then Target.ClearContents
Application.EnableEvents = True
End If
End Sub
Не забываем менять диапазоны на «свои». Списки создаем классическим способом. А всю остальную работу будут делать макросы.
Выпадающий список с поиском
Скачать пример выпадающего списка
При вводе первых букв с клавиатуры высвечиваются подходящие элементы. И это далеко не все приятные моменты данного инструмента. Здесь можно настраивать визуальное представление информации, указывать в качестве источника сразу два столбца.
Элемент управления пользовательской формы ComboBox для выбора и ввода информации в VBA Excel. Свойства поля с раскрывающимся списком, заполнение, извлечение данных, примеры кода.
UserForm.ComboBox – это элемент управления пользовательской формы, предназначенный для передачи в код VBA информации, выбранной пользователем из раскрывающегося списка или введенной с клавиатуры.
ComboBox представляет из себя комбинацию двух элементов управления: текстового поля (TextBox) и списка (ListBox), поэтому его еще называют «комбинированным списком» или «полем со списком». Также ComboBox сочетает в себе свойства этих двух элементов управления.
Изначально комбинированный список прорисовывается на форме в виде текстового поля с кнопкой для отображения раскрывающегося списка. Далее по тексту будем использовать слово «поле» в значении текстового поля в составе элемента управления ComboBox, а словосочетание «раскрывающийся список» – в значении списка в составе элемента управления ComboBox.
Поле со списком используется в тех случаях, когда необходимо добавить в форму информацию, которая заранее известна, а ее отдельные позиции можно сгруппировать в список, а также для ручного ввода с клавиатуры или вставки из буфера обмена, если необходимое значение в списке отсутствует.
Элемент управления ComboBox незаменим при больших списках. При списках из нескольких позиций его можно заменить на ListBox, который отображает позиции для выбора сразу после загрузки формы, не требуя дополнительных действий от пользователя.
Свойства поля со списком
Свойство | Описание |
---|---|
AutoSize | Автоподбор размера комбинированного поля. True – размер автоматически подстраивается под длину выбранной или введенной строки. False – размер элемента управления определяется свойствами Width и Height. |
AutoTab | Включение автоматической табуляции – передачи фокуса следующему элементу управления при достижении максимального числа символов при значениях свойства MaxLenght > 0. True – автоматическая табуляция включена, False – выключена. |
ColumnCount | Указывает количество столбцов в раскрывающемся списке. Значение по умолчанию = 1. |
ColumnHeads | Добавляет строку заголовков в раскрывающийся список. True – заголовки столбцов включены, False – заголовки столбцов выключены. Значение по умолчанию = False. |
ColumnWidths | Ширина столбцов в раскрывающемся списке. Значения для нескольких столбцов указываются в одну строку через точку с запятой (;). |
ControlSource | Ссылка на ячейку для ее привязки к элементу управления ComboBox. |
ControlTipText | Текст всплывающей подсказки при наведении курсора на элемент управления. |
Enabled | Доступ пользователя к полю и раскрывающемуся списку. True – доступ разрешен, False – доступ запрещен*. Значение по умолчанию = True. |
Font | Шрифт, начертание и размер текста в поле. |
Height | Высота элемента управления ComboBox. |
Left | Расстояние от левого края внутренней границы пользовательской формы до левого края комбинированного списка. |
List | Позволяет заполнить ComboBox данными из одномерного или двухмерного массива, а также обращаться к отдельным элементам раскрывающегося списка по индексам для записи и чтения. |
ListIndex | Номер выбранной пользователем строки в раскрывающемся списке. Нумерация начинается с нуля. Если ничего не выбрано, ListIndex = -1. |
ListRows | Количество видимых строк в раскрытом списке. Если общее количество строк больше ListRows, появляется полоса прокрутки. Значение по умолчанию = 8. |
Locked | Запрет на отображение раскрывающегося списка, ввод и редактирование данных в поле. True – ввод и редактирование запрещены**, False – ввод и редактирование разрешены. Значение по умолчанию = False. |
MatchRequired | Задает проверку вводимых в поле строк с элементами списка. True – проверка включена (допускается ввод только строк, совпадающих с элементами списка), False – проверка выключена (допускается ввод любых строк). Значение по умолчанию = False. |
MaxLenght | Максимальная длина строки в поле. Значение по умолчанию = 0, что означает – ограничений нет. |
RowSource | Источник строк для раскрывающегося списка (адрес диапазона на рабочем листе Excel). |
TabIndex | Целое число, определяющее позицию элемента управления в очереди на получение фокуса при табуляции. Отсчет начинается с 0. |
Text | Текстовое содержимое (значение) поля (=Value). |
TextAlign | Выравнивание текста в поле: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю. |
Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края комбинированного списка. |
Value | Текстовое содержимое (значение) поля (=Text). |
Visible | Видимость поля со списком. True – ComboBox отображается на пользовательской форме, False – ComboBox скрыт. |
Width | Ширина элемента управления. |
* При Enabled в значении False пользователь не может раскрывать список, а также вводить или редактировать данные в поле.
** Для элемента управления ComboBox действие свойства Locked в значении True аналогично действию свойства Enabled в значении False.
В таблице перечислены только основные, часто используемые свойства поля со списком. Еще больше доступных свойств отображено в окне Properties элемента управления ComboBox, а все методы, события и свойства – в окне Object Browser.
Вызывается Object Browser нажатием клавиши «F2». Слева выберите объект ComboBox, а справа смотрите его методы, события и свойства.
Свойства BackColor, BackStyle, BorderColor, BorderStyle отвечают за внешнее оформление комбинированного списка и его границ. Попробуйте выбирать доступные значения этих свойств в окне Properties, наблюдая за изменениями внешнего вида элемента управления ComboBox на проекте пользовательской формы.
Способы заполнения ComboBox
Используйте метод AddItem для загрузки элементов в поле со списком по одному:
With UserForm1.ComboBox1 .AddItem «Элемент 1» .AddItem «Элемент 2» .AddItem «Элемент 3» End With |
Используйте свойство List, чтобы скопировать одномерный массив значений в элемент управления ComboBox:
UserForm1.ComboBox1.List = Array(«Строка 1», _ «Строка 2», «Строка 3», «Строка 4», «Строка 5») |
Вместо функции Array можно использовать переменные одномерных и двухмерных массивов. При загрузке значений из двухмерного массива, требуется предварительно указать количество столбцов в комбинированном списке.
Используйте свойство RowSource, чтобы загрузить в ComboBox значения из диапазона ячеек рабочего листа:
UserForm1.ComboBox1.RowSource = «Лист5!B1:B15» |
При загрузке данных из диапазона, содержащего более одного столбца, требуется предварительно указать количество столбцов в комбинированном списке:
With UserForm1.ComboBox1 ‘Указываем количество столбцов .ColumnCount = 5 .RowSource = «‘Таблица с данными’!A1:E20» End With |
В качестве имени листа используется имя ярлыка. Если имя листа содержит пробелы, оно заключается в одинарные кавычки.
Подробнее о заполнении элемента управления ComboBox вы можете ознакомиться в отдельной статье с наглядными примерами. И еще более подробно – в статье о заполнении ListBox, так как ListBox заполняется теми же способами, что и ComboBox.
Привязка поля со списком к ячейке
Чтобы привязать комбинированный список к ячейке на рабочем листе Excel, необходимо свойству ControlSource присвоить адрес ячейки. Это можно сделать непосредственно в окне Properties элемента управления ComboBox или в коде VBA:
UserForm1.ComboBox1.ControlSource = "Лист1!B2"
Имя листа для составного адреса ячейки берется из названия ярлыка. Если имя листа содержит пробелы, оно заключается в одинарные кавычки. При указании адреса без имени листа, ComboBox привязывается к ячейке на активном листе.
В результате привязки образуется взаимосвязь между свойством Value комбинированного списка и значением ячейки. Все изменения в поле ComboBox дублируются в привязанной ячейке и наоборот, изменения в ячейке приводят к изменению текста в поле.
Чтобы протестировать результаты привязки ячейки к полю со списком ComboBox1, разместите на пользовательской форме UserForm1 еще какой-нибудь элемент управления и запустите следующий код VBA Excel:
Sub Test() With UserForm1.ComboBox1 ‘Заполняем список ComboBox1 данными .List = Array(«Красный», «Оранжевый», «Желтый», _ «Зеленый», «Голубой», «Синий», «Фиолетовый») ‘Привязываем ComboBox1 к ячейке «A1» .ControlSource = «A1» ‘Открываем форму в немодальном окне End With UserForm1.Show 0 End Sub |
В результате работы кода пользовательская форма откроется в немодальном окне со значением в поле, скопированном из ячейки «A1» активного листа. Немодальное окно формы позволит редактировать ячейку «A1», не закрывая форму.
Меняйте значение ячейки «A1», нажимайте клавишу «Tab» или «Enter», поле комбинированного списка примет значение ячейки. Меняйте значение поля ComboBox1 с помощью клавиатуры или выбирайте из раскрывающегося списка, нажимайте клавишу «Tab» или «Enter», ячейка «A1» примет значение поля со списком.
Дополнительный элемент управления на форме нужен для передачи ему фокуса нажатием клавиши «Tab» или «Enter», чтобы завершить ввод значения в поле ComboBox1. Иначе новое значение поля будет передано в ячейку «A1» только при закрытии формы.
Значение ComboBox по умолчанию
В раскрывающийся список элемента управления ComboBox1 загружены названия семи основных цветов:
Private Sub UserForm_Initialize() With Me.ComboBox1 .List = Array(«Красный», «Оранжевый», «Желтый», _ «Зеленый», «Голубой», «Синий», «Фиолетовый») ‘Сюда добавляем код вставки значения по умолчанию End With End Sub |
Есть несколько вариантов сделать так, чтобы при открытии пользовательской формы в поле ComboBox1 было отображено значение по умолчанию. Код следует вставлять перед строкой «End With».
‘Вариант 1 (произвольная строка) .Value = «Моя строка по умолчанию» ‘или .Value = «Синий» ‘Вариант 2 (произвольная строка) .ControlSource = «A1» Range(«A1») = «Моя строка по умолчанию» ‘или .ControlSource = «A1» Range(«A1») = «Желтый» ‘Вариант 3 (строка из списка) .ListIndex = 0 ‘Красный ‘или .ListIndex = 3 ‘Зеленый |
Кроме значения по умолчанию, в свойства комбинированного списка можно добавить текст всплывающей подсказки, который будет отображаться при наведении на ComboBox курсора:
UserForm1.ComboBox1.ControlTipText = "Выберите значение из списка"
Извлечение информации из ComboBox
Первоначально элемент управления ComboBox открывается с пустым полем или значением по умолчанию. Свойства Value и Text в этом случае возвращают пустую строку или текст по умолчанию.
Если пользователь выбрал новое значение из раскрывающегося списка или ввел его с клавиатуры, оно перезапишет значения свойств Value и Text. Из этих свойств мы с помощью кода VBA Excel извлекаем информацию, выбранную или введенную пользователем:
Dim myTxt As String myTxt = UserForm1.ComboBox1.Value ‘или myTxt = UserForm1.ComboBox1.Text |
Вторую строку кода можно записать myTxt = UserForm1.ComboBox1
, так как Value является свойством поля со списком по умолчанию.
Если вас интересует, как извлечь значение из многостолбцового раскрывающегося списка, смотрите об этом в статье с описанием элемента управления ListBox. Извлечение данных из комбинированного поля аналогично извлечению данных из ListBox. Знакомясь со статьей, следует учесть, что у ComboBox отсутствует многострочный выбор.
Иногда перед загрузкой в ComboBox требуется отобрать уникальные элементы из имеющегося списка. Смотрите, как это сделать с помощью объектов Collection и Dictionary.
Skip to content
Одной из наиболее полезных функций при вводе данных является возможность использовать выпадающий список в Excel. Он позволяет выбирать значение из предварительно определенного перечня и разрешает вводить только те данные, которые соответствуют вашим требованиям. Мы предложим вам несколько простых способов, как создавать выпадающие списки в Excel. Более сложные способы, основанные на динамических диапазонах и использовании данных из других таблиц, мы также рассмотрим.
Зачем нужен выпадающий список?
Часто случается так, что в какой-то из колонок вашей таблицы нужно вводить одинаковые повторяющиеся значения. К примеру, фамилии сотрудников, названия товаров или делать выбор в ячейке Excel вида «да – нет». Что может случиться? Конечно, в первую очередь будут ошибки при вводе. Человеческий фактор ведь никто не отменял. Чем нам сие грозит? К примеру, когда мы решим подсчитать, сколько заказов выполнил каждый из менеджеров, то окажется, что фамилий больше, чем сотрудников. Далее придётся искать ошибки, исправлять их и вновь повторять расчет.
Ну и конечно же, все время руками вводить одни и те же слова – просто бессмысленная работа и потеря времени. Вот здесь-то выпадающие списки нам и пригодятся. При нажатии выпадает перечень заранее определённых значений, из которых просто необходимо указать какое-то одно.
Важно то, что вы теперь будете не писать, а выбирать их с помощью мыши или клавиатуры. Это значительно ускоряет работу, а также гарантирует защиту от случайных ошибок. Проверка того, что мы записали в таблицу, теперь уже не нужна.
1 — Самый быстрый способ создать выпадающий список.
Как проще всего добавить выпадающий список в таблицу Excel? Всего один щелчок правой кнопкой мыши по пустой клетке под столбцом с данными, затем команда контекстного меню «Выберите из раскрывающегося списка» (Choose from drop-down list). А можно просто стать в нужное место и нажать сочетание клавиш Alt+стрелка вниз
. Появится отсортированный перечень уникальных ранее введенных значений.
Способ не работает, если нашу ячейку и столбец с записями отделяет хотя бы одна пустая строка или вы хотите ввести то, что еще не вводилось выше. На нашем примере это хорошо видно.
2 — Используем меню.
Давайте рассмотрим небольшой пример, в котором нам нужно постоянно вводить в таблицу одни и те же наименования товаров. Выпишите в столбик данные, которые мы будем использовать (например, названия товаров). В нашем примере — в диапазон G2:G7.
Выделите ячейку таблицы (можно сразу несколько), в которых хотите использовать ввод из заранее определенного перечня. Там мы разместим наш выпадающий список.
Далее в главном меню выберите на вкладке Данные – Проверка… (Data – Validation). Затем укажите пункт Тип данных (Allow) и выберите вариант Список (List). Поставьте курсор в поле Источник (Source) и впишите в него адреса с эталонными значениями элементов — в нашем случае G2:G7. Рекомендуется также использовать здесь абсолютные ссылки (для их установки нажмите клавишу F4).
Бонусом здесь идет возможность задать подсказку и сообщение об ошибке, если автоматически вставленное значение вы захотите изменить вручную. Для этого существуют вкладки Подсказка по вводу (Input Message) и Сообщение об ошибке (Error Alert).
В качестве источника значений для выпадающего списка в Excel можно использовать также и именованный диапазон.
К примеру, диапазону I2:I13, содержащему названия месяцев, можно присвоить наименование «месяцы». Затем имя можно ввести в поле «Источник».
Кроме того, и источник и в виде обычного диапазона ячеек, и именованный диапазон могут находиться на других листах вашей рабочей книги.
Но вы можете и не использовать диапазоны или ссылки, а просто определить возможные варианты прямо в поле «Источник». К примеру, чтобы реализовать в таблице Excel простейший выбор «да – нет», вы можете вписать туда –
Да;Нет
Используйте для разделения значений точку с запятой, запятую, либо другой символ, установленный у вас в качестве разделителя элементов. (Смотрите Панель управления — Часы и регион — Форматы — Дополнительно — Числа.)
3 — Создаем элемент управления.
Вставим на лист новый объект – элемент управления «Поле со списком» с последующей привязкой его к данным на листе Excel. Делаем:
- Откройте вкладку Разработчик (Developer). Если её не видно, то в Excel 2007 нужно нажать кнопку Офис – Параметры – флажок Отображать вкладку Разработчик на ленте (Office Button – Options – Show Developer Tab in the Ribbon) или в версии 2010–2013 и выше щелкните правой кнопкой мыши по ленте, выберите команду Настройка ленты (Customize Ribbon) и включите отображение вкладки Разработчик (Developer) с помощью флажка.
- Найдите нужный значок среди элементов управления (см.рисунок ниже).
Вставив элемент управления на рабочий лист, щелкните по нему правой кнопкой мышки и выберите в появившемся меню пункт «Формат объекта». Далее указываем диапазон ячеек, в котором записаны допустимые значения для ввода. В поле «Связь с ячейкой» укажем, куда именно поместить результат. Важно учитывать, что этим результатом будет не само значение из указанного нами диапазона, а только его порядковый номер.
Но нам ведь нужен не этот номер, а соответствующее ему слово. Используем функцию ИНДЕКС (INDEX в английском варианте). Она позволяет найти в списке значений одно из них соответственно его порядковому номеру. В качестве аргументов ИНДЕКС укажите диапазон ячеек (F5:F11) и адрес с полученным порядковым номером (F2).
Формулу в F3 запишем, как показано на рисунке:
=ИНДЕКС(F5:F11;F2)
Как и в предыдущем способе, здесь возможны ссылки на другие листы, на именованные диапазоны.
Обратите также внимание, что здесь мы не привязаны ни к какой конкретному месту таблицы. Таким списком Excel удобно пользоваться, поскольку его можно свободно «перетаскивать» мышкой в любое удобное место. Для этого на вкладке «Разработчик» нужно активизировать режим конструктора.
4 — Элемент ActiveX
Действуем аналогично предыдущему способу, но выбираем иконку чуть ниже — из раздела «Элементы ActiveX».
Определяем перечень допустимых значений (1). Обратите внимание, что здесь для показа можно выбирать сразу несколько колонок. Затем выбираем адрес, по которому будет вставлена нужная позиция из перечня (2).Указываем количество столбцов, которые будут использованы как исходные данные (3), и номер столбца, из которого будет происходить выбор для вставки на лист (4). Если укажете номер столбца 2, то в А5 будет вставлена не фамилия, а должность. Можно также указать количество строк, которое будет выведено в перечне. По умолчанию — 8. Остальные можно прокручивать мышкой (5).
Этот способ сложнее предыдущего, но зато возвращает сразу значение, а не его номер. Поэтому необходимость в промежуточной ячейке и обработке ее при помощи ИНДЕКС — отпадает. Думаю, таким списком пользоваться гораздо удобнее.
5 — Выпадающий список в Excel с автозаполнением
Задача: Создать перечень, в который будут автоматически добавляться значения из заданного динамического диапазона. Если в любую ячейку этого диапазона будут внесены изменения, то сразу же изменится и набор предлагаемых к выбору значений. Никакие формулы и настройки здесь корректировать не нужно.
Вот как автозаполнение может выглядеть на простом примере:
Способ 1. Укажите заведомо большой источник значений для списка.
Самая простая и несложная хитрость. В начале действуем по обычному алгоритму действий: в меню выбираем на вкладке Данные – Проверка … (Data – Validation). Из перечня Тип данных (Allow) выберите вариант Список (List). Поставьте курсор в поле Источник (Source). Зарезервируем в списке набор с большим запасом: например, до 55-й строки, хотя занято у нас только 7. Обязательно не забудьте поставить галочку в чекбоксе «Игнорировать пустые …». Тогда ваш «резерв» из пустых значений не будет вам мешать.
Действительно самый простой способ, но не слишком удобный. Ведь зарезервированное место может и закончиться…
Конечно, в качестве источника можно указать и весь столбец:
=$A:$A
Но обработка такого большого количества ячеек может несколько замедлить вычисления. Особенно в больших таблицах Excel.
Способ 2. Применяем именованный диапазон.
Именованный диапазон отличается от обычного тем, что ему присвоено определенное наименование. С ним гораздо проще работать, так как не нужно вводить ссылку, а достаточно просто указать его имя. Давайте рассмотрим небольшой пример.
В столбце А находятся имена сотрудников, которые мы будем вводить. Перечень может быть сколь угодно длинным. Нам необходимо, чтобы каждая новая запись включалась в раскрывающийся список без всяких дополнительных действий с нашей стороны.
Выделим имеющийся в нашем распоряжении перечень имен A2:A10. Затем присвоим ему название, заполнив поле «Имя», находящееся левее строки формул.
Так вы присвоите какое-то имя этому диапазону Excel.
Создадим в С2 перечень значений. В качестве источника для него укажем выражение
=имя
Недостатком работы с таким выпадающим списком в Excel является то, что новые значения нельзя просто дописывать в конец используемого перечня. Они останутся за пределами именованного диапазона. Если что-то нужно добавить, то их придется вставлять внутрь диапазона, использовав вставку пустой строки.
Перечень ещё можно отсортировать, чтобы удобно было пользоваться.
Главное неудобство пользования таким списком заключается в том, что используемый нами диапазон — статический. Автоматически его размеры измениться не могут. Согласитесь, не слишком удобный и технологичный способ. Слишком много ручных операций.
А теперь давайте пойдем дальше и посмотрим, как можно работать с динамическим диапазоном, который автоматически подстраивается под вводимые значения.
Способ 3. Выпадающий список на основе «умной» таблицы Excel.
Начиная с 2007 года таблица для Excel — уже не просто набор строк и столбцов. Если вы просто расположите показатели с привычном для нас табличном виде, то он не будет считать их таблицей. Существует специальное форматирование, после чего диапазон начинает вести себя как единое целое, приобретая целый ряд интересных свойств. В частности, он начинает сам отслеживать свои размеры, динамически изменяясь при корректировке данных.
Любой набор значений в таблице может быть таким образом преобразован. Например, A1:A8. Выделите их мышкой. Затем преобразуйте в таблицу, используя меню Главная — Форматировать как таблицу (Home — Format as Table). Укажите, что в первой строке у вас находится название столбца. Это будет «шапка» вашей таблицы. Внешний вид может быть любым: это не более чем внешнее оформление и ни на что больше оно не влияет.
Как уже было сказано выше, «умная» таблица хороша для нас тем, что динамически меняет свои размеры при добавлении в нее информации. Если в строку ниже нее вписать что-либо, то она тут же присоединит к себе её. Таким образом, новые значения можно просто дописывать. К примеру, впишите в A9 слово «кокос», и таблица тут же расширится до 9 строк.
Следовательно, автоматическое обновление набора используемой информации в списке можно организовать, если использовать содержимое какого-либо столбца «умной» таблицы.
Осталось только обозначить ее как источник. Проблема заключается в том, что программа в качестве источника в списке не понимает выражение вида
=Таблица1[Столбец1]
и не считает его формулой. Хотя в обычных выражениях на листе вашей рабочей книги это вполне будет работать. Эта конструкция обозначает ссылку на первый столбец. Но в поле «Источник» она почему-то игнорируется.
Чтобы использовать «умную таблицу» как источник, нам придется пойти на небольшую хитрость и воспользоваться функцией ДВССЫЛ (INDIRECT в английском варианте). Эта функция преобразует текстовую переменную в обычную ссылку.
Формула теперь будет выглядеть следующим образом:
=ДВССЫЛ(«Таблица5[Продукт]»)
Таблица5 — имя, автоматически присвоенное «умной таблице». У вас оно может быть другим. На вкладке меню Конструктор (Design) можно изменить стандартное имя на свое (но без пробелов!). По нему мы сможем потом адресоваться к нашей таблице на любом листе книги.
«Продукт» — название нашего первого и единственного столбца, присвоено по его заголовку.
Не забудьте также заключить все выражение в кавычки, чтобы обозначить его как текстовую переменную.
Теперь если в A9 вы допишете еще один фрукт (например, кокос), то он тут же автоматически появится и в нашем перечне. Аналогично будет, если мы что-то удалим. Задача автоматического увеличения выпадающего списка значений решена.
Надеемся, вы сможете теперь с помощью списков без ошибок вводить часто повторяющиеся данные в таблицу Excel при помощи выпадающего списка.
А вот еще полезная для вас информация:
Excel: выбор из списка. Выпадающий список в ячейке листа
Смотрите такжеТеперь надо сформировать непрерывный столбце F5:F39 имеют данных выбираем «Список». сразу два столбца. Range) On Error сформирует правильную ссылкуТеперь сделаем так, чтобыColumnCount — настраивает количество об ошибке с сработал, необходимо соблюдать ячейке «Экселя». эта ячейка неНажимаем «ОК». Получилась такая данном случае она но, если нажать в Excel. Делается
Способ 1: создаем дополнительный список
Многие пользователи даже не (без пустых ячеек) значение Легковой, аДля Типа как источникИтак, как сделать два Resume Next If на внешний источник можно было вводить столбцов отображаемых списком. указанием того, что важное правило: междуКак было сказано выше,
Шаг 1: подготавливаем данные
была пустой. таблица. будет выглядеть следующим по нему, откроется это следующим образом: догадываются, что всем список свободных сотрудников в столбце G5:G39 данных мы просто связанных списка в Not Intersect(Target, Range(«Н2:К2»)) информации. новые значения прямоАвтор: Ксения Медкова введенного значения не списком и необходимым это крайне удобное
Затем, как вСама эта таблица уже образом: «=ДВССЫЛ($B3)». пустой список. Соответственно,Выделите нужный диапазон ячеек, известный табличный редактор для связи - — Fiat. Функция указываем диапазон B7:B9.
Шаг 2: вводим имя диапазона
Excel: категория, подкатегория Is Nothing AndДелаем активной ячейку, куда в ячейку сПод выпадающим списком понимается существует. А если к заполнению местом
- дополнение при работе первом случае, ставим имеет имя. Смотрим
- Нажмите «ОК». надо добавить в
- в котором будут Excel обладает такими
- на следующем шаге выглядит так:Для Производителя мы уже и категория более Target.Cells.Count = 1
- хотим поместить раскрывающийся
этим списком. И содержание в одной вы кликните по не должно быть с различными данными,
Шаг 3: делаем выпадающий список
в пустой ячейке в Диспетчере имен.Второй список создан. Он него продукты. располагаться выпадающие списки.
- функциями и имеет — с выпадающимСЧЁТЕСЛИМН(F5:F39;B4;G5:G39;C4)
- используем формулу, которая
- нижнего уровня. Своими Then Application.EnableEvents = список. данные автоматически добавлялись
- ячейке нескольких значений. клавише выпадающего списка, пустых ячеек. которые могут повторяться (не в таблице)
- Название этой таблицы можно привязан к первому,Чтобы добавить в выпадающийПерейдите на вкладку «Данные». такие инструменты, которые списком. Для этого
- А вся формула для
подробно описана здесь. словами в данном False If Len(Target.Offset(1,Открываем параметры проверки данных. в диапазон. Когда пользователь щелкает
Способ 2: создание выпадающего списка через меню «Разработчика»
установленного в ячейке,Перейдем к следующему способу несколько раз. В знак «равно». Выделяем поменять. Нажимаем на что означает, что, список пункты, необходимо:В группе инструментов «Работа далеко выходят за добавим еще один раскрывающегося списка это:
Она выглядит так: случае нижний уровень 0)) = 0 В поле «Источник»Сформируем именованный диапазон. Путь: по стрелочке справа, то появится перечень создания выпадающего списка
Шаг 1: включаем меню «Разработчика»
целом, конструкция представляет данные столбца А таблицу, заходим на выбрав значение вНа панели инструментов нажать с данными» нажмите
- рамки основной цели
- столбец и введем
- Если вы планируете использоватьМодель — описание для — это «подподкатегория»
- Then Target.Offset(1, 0) вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”). «Формулы» — «Диспетчер
- появляется определенный перечень.
с вариантами, который в «Экселе». собой перечень информации,
Шаг 2: вставляем выпадающий список
(без названия столбца). закладку «Конструктор» и данном случае продукта,
- по кнопке «Режим по кнопке «Проверка
- использования программы – в него такую эту формулу в этой записи сделаем
- если она вообще = Target ElseИмя файла, из которого имен» — «Создать».
- Можно выбрать конкретное. был создан ранее.В конкретном случае нужно
к которой можно У нас - в разделе «Свойства» вам необходимо будет конструктора». данных». редактирования таблиц. В
Шаг 3: задаем необходимые параметры
страшноватую на первый нескольких ячейках -
- таким же самым существует… Но для Target.End(xlDown).Offset(1, 0) =
- берется информация для Вводим уникальное названиеОчень удобный инструмент Excel
- Перед тем как реализовать будет выполнить создание обратиться при необходимости это диапазон А2:А4. пишем свое название выбрать также и
- Затем нажать кнопку «СвойстваВ появившемся окне на этой статье будет взгляд формулу: не забудьте обозначить
образом. лучшего понимания данного Target End If списка, заключено в диапазона – ОК. для проверки введенных данный способ создания отдельных данных, которые
Способ 3: создание связанного списка
и сделать выборкуКопируем формулу выделенного таблицы. Мы написали его меру. Чтобы элемента управления», располагающуюся вкладке «Параметры» выберите рассказано об опции=ЕСЛИ(D2>СЧЁТ($H$2:$H$10);»»;ИНДЕКС($E$2:$E$10;НАИМЕНЬШИЙ($H$2:$H$10;СТРОКА(E2)-1))) ячейки как абсолютныеТеперь рассмотрим, как связать обучающего материала, предположим, Target.ClearContents Application.EnableEvents = квадратные скобки. Этот
Шаг 1: создаем дополнительный список
Создаем раскрывающийся список в данных. Повысить комфорт выпадающего списка в будут входить в по нужному пункту. диапазона. Выходим из имя таблицы – не создавать такие рядом. из выпадающего списка выбора из спискаили, соответственно, ссылки! И еще выпадающий список в что существует.
Шаг 2: Связываем первый список со вторым
True End If файл должен быть любой ячейке. Как работы с данными «Экселе», необходимо активировать список. Примечательно, что Но не будем
- ячейки клавишей «Esc». «Товар». же списки в
- В появившемся окне со «Тип данных» значение в Excel. Другими=IF(D2>COUNT($H$2:$H$10);»»;INDEX($E$2:$E$10;SMALL($H$2:$H$10;ROW(E2)-1)))
- СУПЕРВАЖНО, чтобы вся Excel. Поскольку МодельВ любом случае, с End Sub открыт. Если книга
- это сделать, уже позволяют возможности выпадающих вкладку под названием они могут располагаться здесь задерживаться. Выделяем ячейки, вВ этой таблице уже
- других ячейках, выделите
свойствами в графе «Список». словами, расскажем, какПри всей внешней жуткости запись была подтверждена зависит как от самого начала напишем,Чтобы выбираемые значения отображались с нужными значениями известно. Источник – списков: подстановка данных, «Разработчик». Делается это как на томРассмотрим самые распространенные способы которых будем создавать все столбцы имеют уже добавленные и
Заключение
ListFillRange введите диапазонВведите в поле «Источник» создавать выпадающие списки вида, эта формула комбинацией клавиш Ctrl Типа, так и что этот учебный в одной ячейке, находится в другой имя диапазона: =деревья. отображение данных другого таким образом: листе, в котором того, как сделать выпадающие списки второго динамические диапазоны. Это потяните за нижний ячеек, в котором название ранее созданного
в ячейках таблицы.
fb.ru
Как сделать связанные выпадающие списки в Excel легко.
делает одну простую + Shift + от Производителя - материал является продолжением разделенные любым знаком папке, нужно указыватьСнимаем галочки на вкладках листа или файла,Запустите подменю «Файл» на сделана таблица, так
список в ячейке уровня. У нас значит, если мы правый угол выделения находятся пункты будущего диапазона ячеек, предварительноЕсли вы хотите сделать вещь — выводит Enter !!!
значит мы будем материала: Как сделать препинания, применим такой путь полностью. «Сообщение для ввода», наличие функции поиска верхней панели окна и на другой
«Экселя». – это диапазон добавим в столбце
вниз, тем самым выпадающего списка. поставив знак равенства. в ячейке Excel очередное по номеруСкачать зависимые выпадающие списки использовать формулу массива. зависимые выпадающие списки модуль.Возьмем три именованных диапазона: «Сообщение об ошибке». и зависимости. программы.
странице документа. ЧтобыДанный вариант достаточно прост
F1:F4 (окрашен зеленым ячейку, то диапазон заполнив все нужныеТеперь нажмите ПКМ по В нашем случае список выбора, то имя сотрудника (используя в Excel Предположим, мы хотим в ячейках Excel,Private Sub Worksheet_Change(ByValЭто обязательное условие. Выше
Если этого неПуть: меню «Данные» -Выполните переход в пункт выполнить эту операцию, и не требует цветом). Через функцию увеличится, и это ячейки. выпадающему списку и – «=Продукты». проще всего воспользоваться функцию НАИМЕНЬШИЙ) изНе нажмите OK случайно.
отобразить в нем в котором подробно Target As Range) описано, как сделать сделать, Excel не инструмент «Проверка данных» с названием «Параметры».
следуйте приведенному алгоритму: проведения дополнительных настроек,
«Проверка данных» устанавливаем слово сразу автоматическиОпция выбора из списка в меню выберитеНажмите «ОК». этим способом, подразумевающим списка или пустую Поэтому, когда вы легковые модели Fiat. описали логику и
On Error Resume обычный список именованным позволит нам вводить — вкладка «Параметры». Откроется окно настроек.Заполните столбец информацией, которая так как не выпадающий список. В попадет в выпадающий в Excel довольно «Объект ComboBox», аСразу после этого в простое создание выпадающего ячейку, если имена перейдете в меню В первом списке способ создания одного Next диапазоном (с помощью
новые значения.
Тип данных –
В его левой части должна находиться в является частью инструментария строку «Источник» диалогового список. То же полезна, это можно в подменю Edit. выбранных ячейках появятся списка. Кстати, будет свободных сотрудников уже «Данные», «Проверка данных» мы выбрали Легковой, из таких списков. If Not Intersect(Target,
«Диспетчера имен»). Помним,Вызываем редактор Visual Basic. «Список». будет список, в выпадающем списке в
функции по созданию окна вставляем скопированную самое и со было понять изСразу же после этого выпадающие списки. Это рассказано о двух кончились. и выберите как
во втором - Рекомендуем вам ознакомиться Range(«C2:C5»)) Is Nothing что имя не Для этого щелкаемВвести значения, из которых котором необходимо найти «Экселе». таблицы. Горячие клавиши формулу. столбцом. Пример посмотрим всего вышесказанного. Но в выпадающий список был первый способ его вариациях, поэтому
в Excel 2003 и Тип данных «список», Fiat. с ним, потому And Target.Cells.Count = может содержать пробелов правой кнопкой мыши будет складываться выпадающий и запустить строкуВыделите все подготовленные данные с самого начала
Но формулу снова ниже. куда важнее то, будут внесены указанные его создания, перейдем прочтите до конца, старше идем в а в полеМы будем перемещать ячейку что здесь подробно 1 Then и знаков препинания. по названию листа список, можно разными
настройки ленты.
и кликните по
встроены в программу дорабатываем. Ставим двеИтак, форматированную таблицу что для ее пункты. Вот так ко второму. чтобы во всем
меню «Источник» вставьте эту H4 на столько описывается только то,Application.EnableEvents = False
Создадим первый выпадающий список, и переходим по способами:Откроется другая страница. В ним правой клавишей и работают постоянно. круглые скобки, четыре сделали. Всё. Осталось
excel-office.ru
Выпадающий список в «Экселе»: способы создания
создания не требуется просто можно выполнитьВполне возможно, что предыдущая разобраться.Вставка — Имя - формулу и подтвердите строк, пока не как сделать тотnewVal = Target куда войдут названия вкладке «Исходный текст».Вручную через «точку-с-запятой» в
Что за список?
списке справа найдите мышки. Однако даже тут кавычки, два знака сделать выпадающие списки. обладать глубокими знаниями выбор из списка инструкция показалась вамПредварительно необходимо в отдельном Присвоить (Insert - ее с помощью найдем позицию первого другой связанный выпадающийApplication.Undo
диапазонов. Либо одновременно нажимаем поле «Источник». пункт «Разработчик» и
Работа с горячими клавишами
В появившемся контекстном меню существует несколько различных «&» и, вместо Сначала скопируем адрес в использовании табличного в Excel вторым непонятной, и вы диапазоне ячеек создать Name — Define) Ctrl + Shift легкового Fiatа. Поэтому список Аoldval = TargetКогда поставили курсор в клавиши Alt +
Контекстное меню
Ввести значения заранее. А поставьте напротив него активируйте строку с вариантов того, как
- слова «пальто» (это
- нужного диапазона, чтобы процессора. Тем более методом. столкнулись с трудностями таблицу с данными,
- в Excel 2007 и + Enter. Вот в колонке Тип это то, что
- If Len(oldval) <> поле «Источник», переходим F11. Копируем код в качестве источника галочку. После этого
названием «Присвоить имя…». можно выполнить необходимую имя выделенного диапазона), потом не писать есть даже триДля выбора нескольких значений
Сочетание
при создании в которые будут в новее — жмем и вся магия. мы должны иметь мы хотим получить:
- 0 And oldval
- на лист и (только вставьте свои указать диапазон ячеек появится возможность задействовать
- Откроется специальное окошко. операцию. ставим адрес верхней
его вручную. способа реализации данной выпадающий список в ячейке таблицы элемента будущем находиться в кнопкуЯ знаю, что делать, значение Легковой, аИтак, мы имеем: <> newVal Then
выделяем попеременно нужные параметры).Private Sub Worksheet_Change(ByVal со списком. в работе инструментВ строке для введенияЧтобы создать выпадающий список ячейке столбца с
Первый уровень связанных выпадающих функции, а с Excel подходит лучше
Работа с отдельными данными
выбора значения из выпадающем списке. РазберемДиспетчер Имен (Name Manager) но не знаю в колонке Производительтип автомобиля: Легковой, ФургонTarget = Target ячейки. Target As Range)Назначить имя для диапазона под названием «Поле имени укажите название в «Экселе» таким
- первым уровнем выпадающих списков в Excel. помощью описанных инструкций всего, но порой
- списка в Excel. все на примерена вкладкекуда потом девать
- должен быть Fiat. и Внедорожник (Категория) & «,» &Теперь создадим второй раскрывающийся
- Dim lReply As значений и в со списком (элемент будущего списка (оно образом, необходимо выполнить списков.В любой пустой у вас не бывает потребность во Второй метод реализации
- продуктов. Итак, мыФормулы (Formulas) тела… Если бы мыпроизводитель: Fiat, Volkswagen i
- newVal список. В нем Long If Target.Cells.Count
- поле источник вписать ActiveX)». будет в дальнейшем следующий простой алгоритм:
- Кстати, если вы ячейке пишем «=» должно возникнуть особых
- взаимосвязи нескольких таких может стать достойной имеем список изи создаем новый именованныйИмеем в качестве примера использовали промежуточный столбец Suzuki (Подкатегория) иElse должны отражаться те > 1 Then это имя.Теперь перейдем к самому задействовано в формулезаполните столбец необходимыми данными; выделили диапазон снизу (знак «равно»), выделяем проблем при их списков. К счастью, альтернативой. семи товаров, если диапазон
- недельный график дежурств, (это было бымодель: … немножечко ихTarget = newVal слова, которые соответствуют Exit Sub IfЛюбой из вариантов даст процессу реализации списка: для подстановки). Обратитедалее кликните правой кнопкой вверх, то ставите ячейки шапки таблицы выполнении. программа это позволяет
Задействование ActiveX
Как создать выпадающий список быть точнее, тоИмена который надо заполнить отличным решением, но есть (Подподкатегория)End If
- выбранному в первом Target.Address = «$C$2″ такой результат.
- откройте подключенную вкладку внимание, что оно компьютерной мыши по
- адрес ячейки нижней. – это будетАвтор: Вадим Матузок делать, и далее в ячейке листа
- продуктов. Эту табличкупо следующей формуле: именами сотрудников, причем хотели бы показатьВ то же времяIf Len(newVal) = списке названию. Если Then If IsEmpty(Target) «Разработчик» и выберите
- должно начинаться с пустой ячейке этого Вообщем, с какой первый выпадающий список.Здесь мы рассмотрим будет предоставлена подробная при помощи меню
- мы создадим чуть=СМЕЩ(Лист1!$I$2;0;0;СЧЁТЗ(Лист1!$I$2:$I$10)-СЧИТАТЬПУСТОТЫ(Лист1!I$2:I$10)) для каждого сотрудника вам что-то более мы имеем следующие 0 Then Target.ClearContents «Деревья», то «граб»,
- Then Exit SubНеобходимо сделать раскрывающийся список кнопку «Вставить». Появится буквы и не же столбика, чтобы
- ячейки выделили диапазон,Копируем это адрес. Нажимаем другой вариант, пошаговая инструкция с «Разработчика»? Как и правее от основнойв англоязычной версии =OFFSET(Лист1!$I$2;0;0;COUNTA(Лист1!$I$2:$I$10)-COUNTBLANK(Лист1!I$2:I$10))
- максимальное количество рабочих крутое ), данные:Application.EnableEvents = True «дуб» и т.д. If WorksheetFunction.CountIf(Range(«Деревья»), Target) со значениями из
- маленькое окно с иметь пробелов. вызвать контекстное меню; ту ячейку и клавишу «Esc» -как легко
- детальным описанием всех в предыдущий раз, таблицы, в рамкахФактически, мы просто даем дней (смен) ограничено. то мы быЭтот список должен быть
- End If Вводим в поле
= 0 Then
fb.ru
Выпадающий список в Excel с помощью инструментов или макросов
динамического диапазона. Если различными элементами.Теперь выделите одну илипосле появления последнего активируйте указываете (первую выделенную так выходим изсделать связанные выпадающие списки
действий. для лучшего понимания которой будут созданы диапазону занятых ячеек Идеальным вариантом было искали комбинацию этих отсортирован в следующейEnd Sub «Источник» функцию вида lReply = MsgBox(«Добавить
Создание раскрывающегося списка
вносятся изменения вСреди них найдите указанный несколько ячеек, в строку с надписью в диапазоне). Мы
ячейки. в ExcelПервостепенно необходимо создать основной все действия будут
- выпадающие списки. в синем столбце
- бы организовать в данных: Легковой Fiat. очередности:Не забываем менять диапазоны
- =ДВССЫЛ(E3). E3 – введенное имя « имеющийся диапазон (добавляются ранее инструмент «Поле
которых будет создан «Выбрать из раскрывающегося
выделили диапазон сверху
Выпадающий список в Excel с подстановкой данных
Теперь выделяем ячейки,. Ещё один способ выпадающий список. На поделены на этапы.Если вы не хотите, собственное название ячейках B2:B8 выпадающий Однако у нас
- Тип. на «свои». Списки ячейка с именем & _ Target
- или удаляются данные), со списками». Он выпадающий список в списка»; вниз, п.э. поставим в которые будем сделать раскрывающиеся списки, этом долго останавливатьсяИтак, в первую очередь чтобы таблица сИмена список, но при нет такого столбца,
- Производитель. создаем классическим способом. первого диапазона. & » в они автоматически отражаются будет располагаться в «Экселе».после этого откроется небольшое
в формуле адрес устанавливать выпадающий список. смотрите в статье
не будем, так необходимо активировать меню
данными находилась на
. этом сделать так, но мы можем
Модель. А всю остальнуюБывает, когда из раскрывающегося выпадающий список?», vbYesNo в раскрывающемся списке. нижней части окошка,В верхней панели окна
- окошко, в котором ячейки Е1. Формула Мы выделили диапазон «Связанные выпадающие списки как конструкция полностью
- «Разработчика», так как том листе, чтоОсталось выделить ячейки B2:B8 чтобы уже занятые создать его «на
- Он может быть любой работу будут делать списка необходимо выбрать + vbQuestion) IfВыделяем диапазон для выпадающего второй в первом Excel откройте вкладку
- будут перечислены все получилась такая. Е1:Е4 (окрашен в в Excel». аналогична той, что по умолчанию его и основная, вы нашего графика и сотрудники автоматически убирались лету», другими словами, длины. Что еще макросы. сразу несколько элементов. lReply = vbYes списка. В главном ряду. с именем «Данные». данные, занесенные в=ДВССЫЛ(«Товар[«&$E1&»]») желтый цвет). ВставляемСпособ, который мы была описана в нет среди прочих можете создать ее добавить в них из выпадающего списка, используя формулу массива. важно: стоит добавитьНа вкладке «Разработчик» находим Рассмотрим пути реализации Then Range(«Деревья»).Cells(Range(«Деревья»).Rows.Count + меню находим инструментПосле этого нарисуйте данный
- Перейдите в пункт «Проверка текущий столбец.
- Нажимаем «ОК». Получилось так. выпадающий список как сейчас рассмотрим удобен первом способе. Скажем вкладок. на отдельном листе. выпадающий список с оставляя только свободных:
Набирая эту формулу, к нему еще инструмент «Вставить» – задачи. 1, 1) = «Форматировать как таблицу».
объект в той данных». Выполнится запускРассмотрим теперь второй вариант
Выпадающий список в Excel с данными с другого листа/файла
Можно выпадающие списки сделать обычно. Нажимаем «Проверка тем, что при только, что связыватьНажмите по кнопке «Файл». Роли это не элементами диапазонаЧтобы реализовать подобный вариант вы можете себе два меньших списка, «ActiveX». Здесь нам
- Создаем стандартный список с Target End IfОткроются стили. Выбираем любой.
- ячейке, где планируется окна проверки вводимых того, как сделать
на другом листе, данных», выбираем «Список». добавлении строк или мы будем наименованиеНажмите по кнопке «Параметры». сыграет.Имена выпадающего списка выполним представить, что такой необходимых для Типа
Как сделать зависимые выпадающие списки
нужна кнопка «Поле
помощью инструмента «Проверка End If End Для решения нашей сделать список. Далее значений. список в «Экселе» тогда в формулу В диалоговом окне
- столбцов в таблицу, товара с егоВ появившемся одноименном окне
- Чтобы использовать опцию выбора. Для этого несколько простых шагов. промежуточный столбец существует, и Производителя, то
- со списком» (ориентируемся данных». Добавляем в If End Sub задачи дизайн не выполняется его настройка.На вкладке «Параметры», в с выбором повторяющихся перед адресом ячейки «Проверка вводимых значений» все диапазоны в весом. Рекомендуется создать перейдите в раздел из списка в
Выбор нескольких значений из выпадающего списка Excel
в Excel 2003 иСначала давайте подсчитаем кто и вы увидите, есть к категории на всплывающие подсказки).
- исходный код листаСохраняем, установив тип файла имеет значения. НаличиеДля этого запустите режим строке типа данных данных, используя горячие напишем название листа в строку «Источник» таблице увеличиваются автоматически, наименование диапазонов с «Настройка ленты». Excel, предварительно надо старше — откроем из наших сотрудников что будет проще (первый список) иЩелкаем по значку – готовый макрос. Как «с поддержкой макросов». заголовка (шапки) важно. конструктора. Он находится укажите «Список». клавиши. и поставим восклицательный вставляем скопированную формулу не нужно их
- мерами товаров (г,В области «Основные вкладки» ввести имя диапазона меню уже назначен на ;-) подкатегории (второй список). становится активным «Режим это делать, описаноПереходим на лист со В нашем примере там же, воДалее идет пункт подВ данном случае создание знак. шапки таблицы. Но настраивать. кг, мл, л). установите отметку напротив
- с данными дляДанные — Проверка (Data дежурство и наДля определения положения Легковой Эти дополнительные списки
конструктора». Рисуем курсором выше. С его
списком. Вкладка «Разработчик» это ячейка А1
вкладке разработчика. Далее именем "Источник" (строка списка будет выполненоКак еще можно
формулу нужно доработать.
Остается просто вносить
Ну а теперь перейдем
пункта «Разработчик».
будущего списка. Делается - Validation) сколько смен. Для
Fiat, мы, конечно, списки выглядят следующим (он становится «крестиком»)
помощью справа от
- «Код» -
со словом «Деревья».
нажмите на кнопку значения будет недоступна
за счет сочетания
применить готовые шаблоны
Допишем впереди –
нужные данные в непосредственно к основномуНажмите «ОК». это довольно просто:, этого добавим к
Выпадающий список с поиском
- будем использовать функцию образом: небольшой прямоугольник – выпадающего списка будут «Макросы». Сочетание клавиш То есть нужно
- «Свойства». Произойдет запуск для изменений). Здесь клавиш. Чтобы реализовать таблиц Excel, читайте ДВССЫЛ, поставим кавычки таблицу и все.
- – к созданиюНужная панель инструментов активирована,
- Выделите ячейки, в которыхв Excel 2007 и зеленой таблице еще ПОИСКПОЗ. Смотрите:Дело в том, что место будущего списка. добавляться выбранные значения.Private для быстрого вызова
выбрать стиль таблицы
специального окошка. вы должны поставить его, следуйте приведенной в статье «Готовые и круглые скобки. Остальное сделает сама второго элемента «Выбора теперь можно приступать находятся в данном новее — жмем
exceltable.com
Связанные выпадающие списки и формула массива в Excel
один столбец, введемПОИСКПОЗ(B4&C4;F5:F39&G5:G39;0) эти списки неЖмем «Свойства» – открывается Sub Worksheet_Change(ByVal Target – Alt + со строкой заголовка.Не закрывая его, кликните знак равно, а инструкции: таблицы Excel». Получилась такая формула. таблица — изменит
Два связанных выпадающих списка с формулой массива
из списка» в к созданию списка. случае наименования товаров. кнопку в него следующуюВышеописанное означает, что мы должны иметь дубликатов перечень настроек. As Range) On F8. Выбираем нужное Получаем следующий вид по созданному ранее после него, беззаполните столбец необходимой информацией;Как сделать связанный=ДВССЫЛ(«Товар[#Заголовки]») диапазоны и внесет Excel, который будетНужно создать непосредственно самНажмите правой кнопкой мыши
Проверка данных (Data Validation)
- формулу: хотим знать позицию
- записей по ТипуВписываем диапазон в строку
- Error Resume Next имя. Нажимаем «Выполнить».
диапазона: объекту списка. Далее пробелов, имя списка,
установите курсор на пустую выпадающий список, фамилииНажимаем «ОК».
- новые данные в
- связан с первым.
- элемент «Выпадающий список».
(ПКМ) по выделению.на вкладке=СЧЁТЕСЛИ($B$2:$B$8;E2) или в англоязычной Легкового Fiatа (отсюда и Производителю, находящихся ListFillRange (руками). Ячейку, If Not Intersect(Target,Когда мы введем вСтавим курсор в ячейку, появится достаточно много которое вы указывали или заполненную ячейку в котором можно
Так как в самой соответствующие выпадающие списки.Установите курсор в той Для этого:Выберите из меню опциюДанные (Data) версии =COUNTIF($B$2:$B$8;E2) и связь B4&C4). в списке Моделей. куда будет выводиться Range(«Е2:Е9»)) Is Nothing пустую ячейку выпадающего где будет находиться различных критериев для ранее. В результате
(в зависимости от
Первый и второй связанный выпадающий список: Тип и Производитель
выбирать по алфавиту, таблице с даннымиУ нас есть ячейке, где будетПерейдите на добавленную вкладку «Присвоить имя».
В открывшемся окне выберемФактически, формула просто вычисляет Где? В нашем
Вы можете создать выбранное значение – And Target.Cells.Count = списка новое наименование,
выпадающий список. Открываем настройки. Но вам должно получиться «=список». необходимого действия);
Третий связывающий выпадающий список: Модель
смотрите в статье диапазоны динамичные, то такие данные на располагаться второй список. «Разработчик».В появившемся окне в в списке допустимых сколько раз имя воображаемом вспомогательном столбце, их с помощью в строку LinkedCell. 1 Then Application.EnableEvents появится сообщение: «Добавить параметры инструмента «Проверка необходимы следующие:
Это позволит вводитьнажмите одновременно сочетание клавиш «Связанный выпадающий список если мы добавим листе.Откройте окно «Проверки вводимыхНа листе создайте список поле «Имя» введите значений вариант сотрудника встречалось в то есть: F5:F39&G5:G39. инструмента «Удалить дубликаты» Для изменения шрифта = False If введенное имя баобаб данных» (выше описанListFillRange — определяет диапазон только те данные, Alt и «стрелка в Excel по столбец, это словоСделаем из этих данных значений», нажав на товаров, который будет название диапазона. ОноСписок (List) диапазоне с именами. И здесь самая (например, это показано и размера – Len(Target.Offset(0, 1)) = в выпадающий список?». путь). В поле
ячеек. Они будут которые указаны в вниз». алфавиту».
автоматически увеличится диапазон
форматированную таблицу Excel. вкладке «Данные» по использоваться для создания может быть абсолютнои укажемТеперь выясним, кто из большая сложность всей в этом видео Font. 0 Then Target.Offset(0,
Нажмем «Да» и добавиться «Источник» прописываем такую использоваться для употребления самом списке. ЧтобыПеред вами снова откроетсяНаличие выпадающего списка в таблицы и слово Делаем активной любую кнопке «Проверка данных». выпадающего списка. любым.Источник (Source) наших сотрудников еще формулы.
продолжительностью около 2
Скачать пример выпадающего списка 1) = Target
еще одна строка функцию: значений списка. Сюда выполнить операцию, будет выпадающий список со документах Excel способно отобразится в выпадающем ячейку этих данных.В появившемся окне наНажмите по кнопке «Вставить»Нажмите «ОК».
данных: свободен, т.е. не
Остальное уже проще, а минут). Когда мыПри вводе первых букв Else Target.End(xlToRight).Offset(0, 1) со значением «баобаб».Протестируем. Вот наша таблица можно заносить сразу производиться проверка указанного всеми занесенными в значительно облегчить жизнь, списке. Например, добавим Заходим на закладку вкладке «Параметры» выберите
exceltable.com
Выпадающий список с удалением использованных элементов
и в дополнительномВторой шаг выполнен. Созданный
Вот и все! Теперь исчерпал запас допустимых
Постановка задачи
наибольшего внимания требует это сделали, тогда с клавиатуры высвечиваются = Target EndКогда значения для выпадающего со списком на несколько столбцов. значения, а также столбец данными. Положительным позволяя не держать слово «плащ». Получилось «Главная», в разделе из выпадающего списка меню выберите пункт нами только что при назначении сотрудников
смен. Добавим еще функция СЧЁТЕСЛИМН, которая …
Шаг 1. Кто сколько работает?
подходящие элементы. И If Target.ClearContents Application.EnableEvents списка расположены на одном листе:ListRows — указывает количество будет выполнено предложение моментом такого способа в голове множество так. «Стили» нажимаем кнопку
«Тип данных» пункт «Поле со списком».
диапазон ячеек облегчит на дежурство их один столбец и проверяет, сколько есть
Шаг 2. Кто еще свободен?
это далеко не = True End другом листе илиДобавим в таблицу новое строк, которые будут доступных вариантов, которые является то, что дополнительной информации. ВВторой уровень связанных выпадающих
«Форматировать как таблицу»
Шаг 3. Формируем список
«Список».Кликните по той ячейке, создание списка в имена будут автоматически введем в него Легковых Fiatов. ВДля ячеек, которые должны все приятные моменты If End Sub в другой книге, значение «елка». указаны в выпадающем
и являются списком.
работает заполнение как
данном материале будет
списков в и выбираем первыйВ поле для ввода где будет располагаться будущем. удаляться из выпадающего формулу, которая будет частности, она проверяет, стать раскрывающимися списками данного инструмента. ЗдесьЧтобы выбранные значения показывались
Шаг 4. Создаем именованный диапазон свободных сотрудников
- стандартный способ неТеперь удалим значение «береза». списке. Благодаря запущеннойВ том случае, если строки, располагающейся снизу, рассказано о нескольких
- Excel. шаблон таблицы. «Источник» введите формулу сам список.Теперь можно переходить непосредственно списка, оставляя только
выводить номера свободных сколько раз в в меню «Данные» можно настраивать визуальное
снизу, вставляем другой
работает. Решить задачу
Осуществить задуманное нам помогла вкладке разработчика можно пользователь укажет отсутствующие так и строки, наиболее распространенных способахСначала выберем из
Шаг 5. Создаем выпадающий список в ячейках
Обязательно ставим галочку у «ДВССЫЛ», ссылающуюся наУже на этом этапе к использованию опции тех, кто еще сотрудников: списке встречаются такие
- выбираем «Проверка данных» представление информации, указывать код обработчика.Private Sub можно с помощью «умная таблица», которая указывать большое количество
- данные, Excel выведет располагающейся сверху. того, как сделать выпадающего списка в строки «Таблица с первый список. В
нужный элемент появится, выбора из списка свободен.=ЕСЛИ(F2-G2 записи, которые в и как тип в качестве источника
Worksheet_Change(ByVal Target As функции ДВССЫЛ: она легка «расширяется», меняется. позиций. на экран сообщениеВНИМАНИЕ! Чтобы данный алгоритм выпадающий список в ячейке Е1, чтобы
planetaexcel.ru
заголовками».