Vba excel выбор из списка
Всем, привет!
Ситуация: программно создается несколько книг. Необходимо что бы в ячйках A1, A2,A3 созданных книг появлялся выпадающий список известных значений(значения текстовые).
Помогите с реализацией!
Скопировать строку Excel, за текущей строкой если из выпадающего списка выбрать второе значение в ячейке
Добрый день, никак не получается совместить макрос который я пытаюсь совместить Есть макрос.
Создание выпадающего списка
Нужно создать выпадающий список в ячейке средствами VBA, который ссылался бы не на диапазон ячеек.
Изменение выпадающего списка
Подскажите пожалуйста, второй день пытаюсь изменить выпадающий список созданный обычной функцией в.
Наполнение выпадающего списка ComboBox
Здравствуйте. Подскажите, как можно наполнить ComboBox, который находится на одном листе (может .
Запишите в макрос создание выпадающего списка, перенесите в свою программу.
Исправьте разделитель списка на запятую, например
Мог бы. Но только за большие деньги
Вы можете сами найти ответы: в редакторе VBA поставьте курсор в слово например With и нажмите F1. Если с аглицким туго, найдите в инете справку по VBA для Офис-97 на русском. Ну или скачайте литературу по VBA: Учебники, справочники, самоучители
Эта конструкция задает параметры функции проверки значений, пишется одной строчкой: Cells(1, 1).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= xlBetween, Formula1:="=$C$3:$C$10".
Просто принято делить. Использовать With нужно когда еще чтото делается над тем же объектом
Нижнее подчеркивание - знак переноса для VBA.
Нуже два примера работают одинаково, но читать удобнее первый
Делает она то что на скрине.
Казанский, Не стоит сразу посылать маны курить. Все когда-то начинали. Порой пара толковых объяснений дает больше толку и хороший пинок что разобраться дальше нежели прочитанный талмуд.
До прошлой недели сам использовал элементы управления (третий способ в ссылке на "планету"), у коллег машина ругается на наличие макроса со всеми вытекающими.
Formanter, оч. хочется посмотреть на Ваше отношение к "отсыланию в маны" постов этак через 2000. да даже хотя бы через 500
Давать ссылку на маны вместо решения - не нужно.
Если маны даются вдовесок к решению - это больше, чем просто помощь.
У меня такая проблема. Хочу в выпадающий список в ячейке вставить массив данных.
Пробовала в формулу писать имя массива, не выходит..
Конечно есть вариант написать массив на скрытый лист, потом сослаться в формуле на диапозон.
Но хочется без лишнего веса обойтись, компы тормозные. Реально сделать.
Здравствуйте, @Feel_,
Поступил бы так:
Если строка получится длиннее 255 - то при открытии сохранённого xlsm с такой проверкой будет ругань.
xlsb терпеливее - но пределы не изучал.
Не получается так((( ругается. Ну ладно.. сделала уже с листом.. Надо скорее просто. Но если метод найдётся буду очень рада. Так как часто требуется!
Ребят, а может мне кто-нибудь подскажет вариант реализации? Задача у меня такая: есть файл с адресами: Город, Улица, Дом - это столбцы. Файл для каждого региона свой, и он динамичный лежит в общем справочнике. Мы работаем с другим файлом, в который вставляется нужный листик, в зависимости от того, какой регион его открывает. Это я написала. Так вот. теперь надо, чтобы на другом листочке в столбцах Город/улица/дом, выходили выпадающие списки, причём для определённого города, только его улицы, а для улиц дома. При этом не должно быть пустых и улицы уникальны.
Я придумала два варианта реализации. Но они оба не отличаются особым успехом.
Первый: почти без VBA
с помощью VBA я создаю уникальный список городов и делаю его именем и прописываю кодом, что значение в столбце должно быть список с именем "Город"
далее, так как у меня есть список Город-Улица (на адресном листе), с помощью формулы смещения и поиска позиции нахожу улицы только этого города.(минус этого такой, что эта формула в именах постоянно почему-то (!) сбивается. )
Далее аналогично, этой же формулой нахожу дома для улиц.
Второй способ - не осуществила до конца, так как ступор. Создала уникальные города на отдельном листе в строку. Далее создала под каждым городом его улицы - так же уникальные. А вот теперь надо через ДВССЫЛ через 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 для загрузки элементов в поле со списком по одному:
UserForm.ListBox – это элемент управления пользовательской формы, предназначенный для передачи в код VBA информации, выбранной пользователем из одностолбцового или многостолбцового списка.
Список используется в тех случаях, когда необходимо добавить в форму информацию, которая заранее известна, а ее отдельные позиции можно сгруппировать в список. Элемент управления ListBox оправдывает себя при небольших списках, так как большой список будет занимать много места на форме.
Использование полос прокрутки уменьшает преимущество ListBox перед элементом управления ComboBox, которое заключается в том, что при открытии формы все позиции для выбора на виду без дополнительных действий со стороны пользователя. При выборе информации из большого списка удобнее использовать ComboBox.
Элемент управления ListBox позволяет выбрать несколько позиций из списка, но эта возможность не имеет практического смысла. Ввести информацию в ListBox с помощью клавиатуры или вставить из буфера обмена невозможно.
Свойства списка
Свойство | Описание |
---|---|
ColumnCount | Указывает количество столбцов в списке. Значение по умолчанию = 1. |
ColumnHeads | Добавляет строку заголовков в ListBox. True – заголовки столбцов включены, False – заголовки столбцов выключены. Значение по умолчанию = False. |
ColumnWidths | Ширина столбцов. Значения для нескольких столбцов указываются в одну строку через точку с запятой (;). |
ControlSource | Ссылка на ячейку для ее привязки к элементу управления ListBox. |
ControlTipText | Текст всплывающей подсказки при наведении курсора на ListBox. |
Enabled | Возможность выбора элементов списка. True – выбор включен, False – выключен*. Значение по умолчанию = True. |
Font | Шрифт, начертание и размер текста в списке. |
Height | Высота элемента управления ListBox. |
Left | Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления ListBox. |
List | Позволяет заполнить список данными из одномерного или двухмерного массива, а также обращаться к отдельным элементам списка по индексам для записи и чтения. |
ListIndex | Номер выбранной пользователем строки. Нумерация начинается с нуля. Если ничего не выбрано, ListIndex = -1. |
Locked | Запрет возможности выбора элементов списка. True – выбор запрещен**, False – выбор разрешен. Значение по умолчанию = False. |
MultiSelect*** | Определяет возможность однострочного или многострочного выбора. 0 (fmMultiSelectSingle) – однострочный выбор, 1 (fmMultiSelectMulti) и 2 (fmMultiSelectExtended) – многострочный выбор. |
RowSource | Источник строк для элемента управления ListBox (адрес диапазона на рабочем листе Excel). |
TabIndex | Целое число, определяющее позицию элемента управления в очереди на получение фокуса при табуляции. Отсчет начинается с 0. |
Text | Текстовое содержимое выбранной строки списка (из первого столбца при ColumnCount > 1). Тип данных String, значение по умолчанию = пустая строка. |
TextAlign | Выравнивание текста: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю. |
Top | Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления ListBox. |
Value | Значение выбранной строки списка (из первого столбца при ColumnCount > 1). Value – свойство списка по умолчанию. Тип данных Variant, значение по умолчанию = Null. |
Visible | Видимость списка. True – ListBox отображается на пользовательской форме, False – ListBox скрыт. |
Width | Ширина элемента управления. |
* При Enabled в значении False возможен только вывод информации в список для просмотра.
** Для элемента управления ListBox действие свойства Locked в значении True аналогично действию свойства Enabled в значении False.
*** Если включен многострочный выбор, свойства Text и Value всегда возвращают значения по умолчанию (пустая строка и Null).
В таблице перечислены только основные, часто используемые свойства списка. Еще больше доступных свойств отображено в окне Properties элемента управления ListBox, а все методы, события и свойства – в окне Object Browser.
Вызывается Object Browser нажатием клавиши «F2». Слева выберите объект ListBox, а справа смотрите его методы, события и свойства.
Свойства BackColor, BorderColor, BorderStyle отвечают за внешнее оформление списка и его границ. Попробуйте выбирать доступные значения этих свойств в окне Properties, наблюдая за изменениями внешнего вида элемента управления ListBox на проекте пользовательской формы.
Способы заполнения ListBox
Используйте метод AddItem для загрузки элементов в список по одному:
Как выбрать несколько элементов из раскрывающегося списка в ячейку в Excel?
Выберите несколько элементов из раскрывающегося списка в ячейку с помощью VBA
Вот некоторые VBA, которые могут оказать вам услугу при решении этой задачи.
Выберите повторяющиеся элементы из раскрывающегося списка в ячейке
1. После создания раскрывающегося списка щелкните правой кнопкой мыши вкладку листа, чтобы выбрать Просмотреть код из контекстного меню.
2. Затем в Microsoft Visual Basic для приложений окна, скопируйте и вставьте приведенный ниже код в пустой скрипт.
VBA: выберите несколько элементов из раскрывающегося списка в ячейке
3. Сохраните код и закройте окно, чтобы вернуться к раскрывающемуся списку. Теперь вы можете выбрать несколько элементов из раскрывающегося списка.
Примечание:
1. С помощью VBA элементы разделяются пробелами, вы можете изменить xStrNew = xStrNew & "" & Целевое значение другим, чтобы изменить разделитель по мере необходимости. Например, xStrNew = xStrNew & ", " & Целевое значение разделит элементы запятыми.
2. Этот код VBA работает для всех раскрывающихся списков на листе.
Выберите несколько элементов из раскрывающегося списка в ячейку без повторения
Если вы просто хотите выбрать уникальные элементы из раскрывающегося списка в ячейку, вы можете повторить вышеуказанные шаги и использовать приведенный ниже код.
VBA : Выберите несколько элементов из раскрывающегося списка в ячейку без повторения
Выберите несколько элементов из раскрывающегося списка в ячейку с помощью удобной опции Kutools for Excel
Если вы не знакомы с кодом VBA, вы можете бесплатная установка удобный инструмент - Kutools for Excel, который содержит группу утилит о выпадающем списке, и есть опция Раскрывающийся список с множественным выбором может помочь вам легко выбрать несколько элементов из раскрывающегося списка в ячейку.
После создания раскрывающегося списка выберите ячейки раскрывающегося списка и нажмите Кутулс > Раскрывающийся список > Раскрывающийся список с множественным выбором чтобы включить эту утилиту.
Затем из выбранных ячеек раскрывающегося списка можно выбрать несколько элементов в ячейке.
Если вы используете эту опцию в первый раз, вы можете указать настройки этой утилиты по своему усмотрению, прежде чем применять эту утилиту.
Нажмите Кутулс > Раскрывающийся список > стрелка рядом Раскрывающийся список с множественным выбором > Настройки.
Затем в Настройки раскрывающегося списка с множественным выбором диалог, вы можете
1) Укажите необходимую вам область применения;
2) Укажите направление размещения предметов;
3) Укажите разделитель между элементами;
4) Укажите, не следует ли добавлять дубликаты и удалять повторяющиеся элементы.
Нажмите Ok и нажмите Кутулс > Раскрывающийся список > Раскрывающийся список с множественным выбором чтобы подействовать.
Функции: Чтобы применить Раскрывающийся список с множественным выбором утилита, вам нужно устанавливать это сначала. Если вы хотите создать раскрывающийся список с несколькими уровнями, вам может помочь следующая утилита.
Как создать раскрывающийся список с множественным выбором или значениями в Excel?
По умолчанию вы можете выбрать только один элемент за раз из раскрывающегося списка проверки данных в Excel. Как сделать несколько вариантов выбора из раскрывающегося списка, как показано на скриншоте ниже? Методы, описанные в этой статье, могут помочь вам решить проблему.
Easily select multiple items from the drop-down list in Excel:
The Multi-select Drop Down List utility of Kutools for Excel can help you quickly easily select multiple items from the drop-down list in a range, current worksheet, current workbook or all workbooks. See below demo:
Download the full feature 30-day free trail of Kutools for Excel now!
Создать раскрывающийся список с несколькими вариантами выбора с кодом VBA
Вы можете применить приведенный ниже код VBA, чтобы сделать несколько вариантов выбора из раскрывающегося списка на листе в Excel. Пожалуйста, сделайте следующее.
1. Откройте лист, в котором вы установили раскрывающийся список проверки данных, щелкните правой кнопкой мыши вкладку листа и выберите Просмотреть код из контекстного меню.
2. в Microsoft Visual Basic для приложений окно, скопируйте приведенный ниже код VBA в окно кода. Смотрите скриншот:
Код VBA: раскрывающийся список с несколькими вариантами выбора
3. нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно.
Теперь вы можете выбрать несколько элементов из раскрывающегося списка на текущем листе.
Ноты:
- 1. Повторяющиеся значения не допускаются в раскрывающемся списке.
- 2. При закрытии книги код VBA будет удален автоматически, и множественный выбор больше не будет использоваться. Сохраните книгу как Excel Macro-Enabled Workbook чтобы код работал в будущем.
Легко создавайте раскрывающийся список с несколькими вариантами выбора с помощью замечательного инструмента
Здесь настоятельно рекомендуется Раскрывающийся список с множественным выбором особенность Kutools for Excel для вас. С помощью этой функции вы можете легко выбрать несколько элементов из раскрывающегося списка в указанном диапазоне, текущем листе, текущей книге или всех открытых книгах по мере необходимости.
Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.
1. Нажмите Кутулс > Раскрывающийся список > Раскрывающийся список с множественным выбором > Настройки. Смотрите скриншот:
2. в Настройки раскрывающегося списка с множественным выбором диалоговое окно, настройте следующим образом.
- 2.1) Укажите область применения в Обращаться к раздел. В этом случае я выбираю Текущий рабочий лист из Указанный объем раскрывающийся список;
- 2.2). Направление текста раздел выберите направление текста в зависимости от ваших потребностей;
- 2.3). Разделитель поле введите разделитель, который вы будете использовать для разделения нескольких значений;
- 2.4) Проверьте Не добавляйте дубликаты коробка в Доступные опции раздел, если вы не хотите дублировать ячейки выпадающего списка;
- 2.5) Нажмите OK кнопка. Смотрите скриншот:
3. Щелкните Кутулс > Раскрывающийся список > Раскрывающийся список с множественным выбором для включения функции.
Теперь вы можете выбрать несколько элементов из раскрывающегося списка на текущем листе или в любой области, указанной на шаге 2.
Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Статьи по теме:
Автозаполнение при вводе текста в раскрывающемся списке Excel
Если у вас есть раскрывающийся список проверки данных с большими значениями, вам нужно прокрутить список вниз только для того, чтобы найти нужное, или введите все слово напрямую в поле списка. Если есть способ разрешить автозаполнение при вводе первой буквы в выпадающем списке, все станет проще. В этом руководстве представлен метод решения проблемы.
Создать раскрывающийся список из другой книги в Excel
Создать раскрывающийся список проверки данных среди листов в книге довольно просто. Но если данные списка, необходимые для проверки данных, находятся в другой книге, что вы будете делать? В этом руководстве вы узнаете, как подробно создать раскрывающийся список из другой книги в Excel.
Создайте раскрывающийся список с возможностью поиска в Excel
Для раскрывающегося списка с многочисленными значениями найти подходящий - непростая задача. Ранее мы ввели метод автоматического заполнения раскрывающегося списка при вводе первой буквы в раскрывающемся списке. Помимо функции автозаполнения, вы также можете сделать раскрывающийся список доступным для поиска для повышения эффективности работы при поиске правильных значений в раскрывающемся списке. Чтобы сделать раскрывающийся список доступным для поиска, попробуйте метод, описанный в этом руководстве.
Автоматическое заполнение других ячеек при выборе значений в раскрывающемся списке Excel
Допустим, вы создали раскрывающийся список на основе значений в диапазоне ячеек B8: B14. При выборе любого значения в раскрывающемся списке необходимо, чтобы соответствующие значения в диапазоне ячеек C8: C14 автоматически заполнялись в выбранной ячейке. Для решения проблемы методы, описанные в этом руководстве, окажут вам услугу.
Читайте также: