Элемент управления пользовательской формы ListBox для выбора и ввода информации в VBA Excel. Свойства списка, его заполнение, извлечение данных, примеры кода.
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 для загрузки элементов в список по одному:
With UserForm1.ListBox1 .AddItem «Значение 1» .AddItem «Значение 2» .AddItem «Значение 3» End With |
Используйте свойство List, чтобы скопировать одномерный массив значений в элемент управления ListBox.
UserForm1.ListBox1.List = Array(«Текст 1», _ «Текст 2», «Текст 3», «Текст 4», «Текст 5») |
Вместо функции Array можно использовать переменные одномерных и двухмерных массивов. При загрузке значений из двухмерного массива, требуется предварительно указать количество столбцов в списке.
Используйте свойство RowSource, чтобы загрузить в список значения из диапазона ячеек рабочего листа:
UserForm1.ListBox1.RowSource = «Лист1!A1:A6» |
При загрузке данных из диапазона, содержащего более одного столбца, требуется предварительно указать количество столбцов в списке:
With UserForm1.ListBox1 ‘Указываем количество столбцов .ColumnCount = 5 .RowSource = «‘Лист со списком’!A1:E10» End With |
В качестве имени листа используется имя ярлыка. Если имя листа содержит пробелы, оно заключается в одинарные кавычки.
Подробнее о заполнении элемента управления ListBox вы можете ознакомиться в отдельной статье с наглядными примерами.
Привязка списка к ячейке
Для привязки списка к ячейке на рабочем листе используется свойство ControlSource. Суть привязки заключается в том, что при выборе строки в элементе управления, значение свойства Value копируется в привязанную ячейку.
Если привязанная к списку ячейка содержит значение одной из строк элемента управления ListBox, то при запуске пользовательской формы список откроется с выделенной строкой, содержащей это значение. Если привязанная ячейка при загрузке формы пустая, то список откроется без выделения какой-либо строки.
В случае, когда при открытии формы в привязанной к списку ячейке содержится значение, которого нет ни в одной из строк элемента управления ListBox, будет сгенерирована ошибка.
Привязать ячейку к списку можно, указав адрес ячейки в поле свойства ControlSource в окне Properties элемента управления ListBox. Или присвоить адрес ячейки свойству ControlSource в коде VBA Excel:
UserForm1.ListBox1.ControlSource = «Лист1!A2» |
Теперь значение выбранной строки в списке автоматически копируется в ячейку «A2» на листе «Лист1»:
В окне Properties адрес указывается без двойных кавычек. Если имя листа содержит пробелы, оно заключается в одинарные кавычки.
Извлечение информации из списка
Первоначально элемент управления ListBox открывается со строками, ни одна из которых не выбрана. При выборе (выделении) строки, ее значение записывается в свойства Value и Text.
Из этих свойств мы с помощью кода VBA Excel извлекаем информацию, выбранную в списке пользователем:
Dim myVar as Variant, myTxt As String myVar = UserForm1.ListBox1.Value ‘или myTxt = UserForm1.ListBox1.Text |
Вторую строку кода можно записать myVar = UserForm1.ListBox1
, так как Value является свойством списка по умолчанию.
Если ни одна позиция в списке не выбрана, свойство Value возвращает значение Null, а свойство Text – пустую строку. Если выбрана строка в многостолбцовом списке, в свойства Value и Text будет записана информация из первого столбца.
Что делать, если понадобятся данные из других столбцов многостолбцового списка, кроме первого?
Для получения данных из любого столбца элемента управления ListBox используется свойство List, а для определения выбранной пользователем строки – ListIndex.
Для тестирования приведенного ниже кода скопируйте таблицу и вставьте ее в диапазон «A1:D4» на листе с ярлыком «Лист1»:
Звери | Лев | Тапир | Вивера |
Птицы | Грач | Сорока | Филин |
Рыбы | Карась | Налим | Парусник |
Насекомые | Оса | Жук | Муравей |
Создайте в редакторе VBA Excel пользовательскую форму и добавьте на нее список с именем ListBox1. Откройте модуль формы и вставьте в него следующие процедуры:
Private Sub UserForm_Initialize() With Me.ListBox1 ‘Указываем, что у нас 4 столбца .ColumnCount = 4 ‘Задаем размеры столбцов .ColumnWidths = «50;50;50;50» ‘Импортируем данные .RowSource = «Лист1!A1:D4» ‘Привязываем список к ячейке «F1» .ControlSource = «F1» End With End Sub Private Sub UserForm_Click() MsgBox Me.ListBox1.List(Me.ListBox1.ListIndex, 2) End Sub |
В процедуре UserForm_Initialize() присваиваем значения некоторым свойствам элемента управления ListBox1 перед открытием пользовательской формы. Процедура UserForm_Click() при однократном клике по форме выводит в MsgBox значение из третьего столбца выделенной пользователем строки.
Теперь при выборе строки в списке, значение свойства Value будет записываться в ячейку «F1», а при клике по форме функция MsgBox выведет значение третьего столбца выделенной строки.
Обратите внимание, что при первом запуске формы, когда ячейка «F1» пуста и ни одна строка в ListBox не выбрана, клик по форме приведет к ошибке. Это произойдет из-за того, что свойство ListIndex возвратит значение -1, а это недопустимый номер строки для свойства List.
Если для списка разрешен многострочный выбор (MultiSelect = fmMultiSelectMulti или MultiSelect = fmMultiSelectExtended), тогда, независимо от количества выбранных строк, свойство Value будет возвращать значение Null, а свойство Text – пустую строку. Свойство ListIndex будет возвращать номер строки, которую кликнули последней, независимо от того, что это было – выбор или отмена выбора.
Иногда перед загрузкой в ListBox требуется отобрать уникальные элементы из имеющегося списка. Смотрите, как это сделать с помощью объектов Collection и Dictionary.
title | keywords | f1_keywords | ms.prod | api_name | ms.assetid | ms.date | ms.localizationpriority |
---|---|---|---|---|---|---|---|
Names object (Excel) |
vbaxl10.chm487072 |
vbaxl10.chm487072 |
excel |
Excel.Names |
ffecf89d-7bae-c470-8e37-608857a9de2a |
03/30/2019 |
medium |
Names object (Excel)
A collection of all the Name objects in the application or workbook.
Remarks
Each Name object represents a defined name for a range of cells. Names can be either built-in names—such as Database, Print_Area, and Auto_Open—or custom names.
The RefersTo argument must be specified in A1-style notation, including dollar signs ($) where appropriate. For example, if cell A10 is selected on Sheet1 and you define a name by using the RefersTo argument «=sheet1!A1:B1», the new name actually refers to cells A10:B10 (because you specified a relative reference). To specify an absolute reference, use «=sheet1!$A$1:$B$1».
Example
Use the Names property of the Workbook object to return the Names collection. The following example creates a list of all the names in the active workbook, plus the addresses that they refer to.
Set nms = ActiveWorkbook.Names Set wks = Worksheets(1) For r = 1 To nms.Count wks.Cells(r, 2).Value = nms(r).Name wks.Cells(r, 3).Value = nms(r).RefersToRange.Address Next
Use the Add method to create a name and add it to the collection. The following example creates a new name that refers to cells A1:C20 on the worksheet named Sheet1.
Names.Add Name:="test", RefersTo:="=sheet1!$a$1:$c$20"
Use Names (index), where index is the name index number or defined name, to return a single Name object. The following example deletes the name mySortRange from the active workbook.
ActiveWorkbook.Names("mySortRange").Delete
This example uses a named range as the formula for data validation. This example requires the validation data to be on Sheet 2 in the range A2:A100. This validation data is used to validate data entered on Sheet1 in the range D2:D10.
Sub Add_Data_Validation_From_Other_Worksheet() 'The current Excel workbook and worksheet, a range to define the data to be validated, and the target range 'to place the data in. Dim wbBook As Workbook Dim wsTarget As Worksheet Dim wsSource As Worksheet Dim rnTarget As Range Dim rnSource As Range 'Initialize the Excel objects and delete any artifacts from the last time the macro was run. Set wbBook = ThisWorkbook With wbBook Set wsSource = .Worksheets("Sheet2") Set wsTarget = .Worksheets("Sheet1") On Error Resume Next .Names("Source").Delete On Error GoTo 0 End With 'On the source worksheet, create a range in column A of up to 98 cells long, and name it "Source". With wsSource .Range(.Range("A2"), .Range("A100").End(xlUp)).Name = "Source" End With 'On the target worksheet, create a range 8 cells long in column D. Set rnTarget = wsTarget.Range("D2:D10") 'Clear out any artifacts from previous macro runs, then set up the target range with the validation data. With rnTarget .ClearContents With .Validation .Delete .Add Type:=xlValidateList, _ AlertStyle:=xlValidAlertStop, _ Formula1:="=Source" 'Set up the Error dialog with the appropriate title and message .ErrorTitle = "Value Error" .ErrorMessage = "You can only choose from the list." End With End With End Sub
Methods
- Add
- Item
Properties
- Application
- Count
- Creator
- Parent
See also
- Excel Object Model Reference
[!includeSupport and feedback]
Вывод списка имён (Names) книги Excel на новый лист
Если вы хотите посмотреть, присутствуют ли в книге Excel назначенные имена,
сделать это просто — достаточно вызвать диспетчер имён нажатием комбинации клавиш Ctrl + F3:
В диспетчере имён можно создать новые имена, просмотреть ранее созданные, и, при желании, изменить их.
Одно но: в диспетчере имён отображаются только видимые имена,
а в книге Excel могут присутствовать и скрытые.
Чтобы узнать количество имён в книге, а также посмотреть их значения,
мы воспользуемся макросом:
Sub ПолучениеСпискаИмёнВКниге() Dim n As Name, VisibleNames%, HiddenNames%, WB As Workbook, i As Long Set WB = ActiveWorkbook For Each n In WB.Names VisibleNames = VisibleNames - n.Visible HiddenNames = HiddenNames - Not n.Visible Next n If VisibleNames + HiddenNames = 0 Then MsgBox "Имена в книге отсутствуют (не назначены)", vbInformation Else msg = "Количество имён в книге: " & VisibleNames + HiddenNames & vbNewLine & _ "Из них видимых: " & VisibleNames & ", скрытых: " & HiddenNames & vbNewLine & _ vbNewLine & "Вывести на лист список всех имён?" If MsgBox(msg, vbInformation + vbYesNo, "Имена в открытом файле") = vbYes Then Dim sh As Worksheet: Set sh = Workbooks.Add(xlWBATWorksheet).Worksheets(1) sh.Cells(1, 1).Resize(, 4).Value = _ Array("№", "Имя", "Видимость", "Ссылка (значение)") sh.Cells(1, 1).Resize(, 4).Interior.ColorIndex = 15 For i = 1 To WB.Names.Count Set n = WB.Names(i) sh.Cells(i + 1, 1).Resize(, 4).Value = _ Array(i, n.Name, IIf(n.Visible, "Видимое", "Скрытое"), "'" & n.RefersTo) Next i sh.UsedRange.EntireColumn.AutoFit End If End If End Sub
Для этого в прикреплённом файле нажмём зеленую кнопку,
и увидим вообщение с информацией о количестве имен в книге:
Если в диаоговом окне мы нажмём «Да», то макрос создаст новую книгу, и сформирует в ней таблицу со списком всех имен книги:
Если же вам требуется вывести список видимых имён на лист Excel, то можно воспользоваться макросом из одной строки:
Sub СписокВидимыхИмён() ActiveCell.ListNames End Sub
Того же эффекта можно добиться, нажав кнопку «Все имена» в диалоговом окне, вызываемом из меню Вставка — Имя — Вставить… (в Excel 2003):
- 29049 просмотров
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
Что такое список в Excel VBA?
Поле списка в Excel VBA представляет собой список, назначенный переменной. Этот список имеет различные входы для выбора и позволяет выбрать несколько вариантов одновременно. Список можно вставить в пользовательскую форму, выбрав параметр списка.
Списки используют именованные диапазоны, имеющие определенные значения. Целью использования списка является отображение списка значений, из которых пользователи могут выбирать.
Оглавление
- Что такое список в Excel VBA?
- Как создать список в Excel?
- Как создать список в VBA?
- Как создать список в пользовательской форме?
- Как добавить динамический элемент управления в список?
- Как добавить элементы в список элементов управления в VBA?
- Как удалить элементы из списка элементов управления с помощью VBA?
- Пример
- Константы списка в VBA
- Часто задаваемые вопросы
- Рекомендуемые статьи
Как создать список в Excel?
Шаги для создания списка в Excel перечислены ниже:
- Шаг 1. Включите вкладку «Разработчик» на ленте Excel, чтобы получить доступ к элементам управления ActiveX. В диалоговом окне «Параметры Excel» нажмите «Настроить ленту в Excel» и установите флажок «Разработчик».
Шаг 2: На вкладке «Разработчик» нажмите «Вставить», а затем элемент управления «список». Это вставит новый список на лист Excel. - Шаг 3: Нарисуйте прямоугольник на листе Excel, чтобы создать список, как показано на следующем рисунке.
- Шаг 4: Выберите список, перейдите на вкладку «Разработчик» и выберите «Свойства». Откроется окно «Свойства».
- Шаг 5: В окне «Свойства» введите «дни» в «ListFillRange». «Дни» — это именованный диапазон дней недели.
- Шаг 6: Щелкните свойство «MultiSelect». В раскрывающемся списке выберите «1-fmMultiSelectMulti», как показано на следующем изображении.
- Шаг 7: Щелкните свойство «ListStyle». В раскрывающемся списке выберите «1-fmListStyleOption». Это добавит флажки слева от перечисленных элементов, как показано на следующем рисунке.
- Шаг 8: Закройте окно «Свойства». Окно со списком выглядит так, как показано на следующем рисунке.
Примечание: Вы можете выбрать «режим дизайна выключен», нажав «Режим дизайна». Это закрывает «режим проектирования».
Как создать список в VBA?
Шаги для создания списка в VBA перечислены ниже:
.free_excel_div{фон:#d9d9d9;размер шрифта:16px;радиус границы:7px;позиция:относительная;margin:30px;padding:25px 25px 25px 45px}.free_excel_div:before{content:»»;фон:url(центр центр без повтора #207245;ширина:70px;высота:70px;позиция:абсолютная;верх:50%;margin-top:-35px;слева:-35px;граница:5px сплошная #fff;граница-радиус:50%} Вы можете скачать этот шаблон Excel для списков здесь — Шаблон Excel для списков
- Шаг 1: Щелкните правой кнопкой мыши список и убедитесь, что выбран режим разработки. Это связывает поле со списком с ячейкой.
- Шаг 2: В «свойствах» перейдите к свойству «LinkedCell» и заполните «B17», как показано на следующем рисунке.
- Шаг 3: В «ListFillRange» введите «Месяц».
- Шаг 4: Окно со списком выглядит так, как показано на следующем изображении.
Данные в ячейке B17 изменяются, когда вы меняете свой выбор в списке. Это показано на следующем изображении.
Как создать список в пользовательской форме?
Шаги для создания списка в пользовательской форме перечислены ниже:
- Шаг 1: На вкладке «Разработчик» нажмите «Visual Basic» в разделе «Код» или нажмите клавиши ALT+F11.
- Шаг 2: В меню «Вставка» нажмите «Пользовательская форма».
- Шаг 3: Из панели инструментов перетащите элемент управления списком на «Пользовательскую форму».
- Шаг 4: Дважды щелкните «UserForm» и выберите «Событие UserForm», как показано на следующем снимке экрана.
- Шаг 5: Добавьте следующий код в промежуточную процедуру.
Частная подпрограмма UserForm_Initialize()
ListBox1.AddItem «MBA»
ListBox1.AddItem «MCA»
ListBox1.AddItem «MSC»
ListBox1.AddItem «MECS»
ListBox1.AddItem «CA»
Конец сабвуфера
- Шаг 6: Нажмите F5, чтобы запустить код.
Как добавить динамический элемент управления в список?
Действия по добавлению динамического элемента управления в поле со списком в форме UserForm с помощью VBAUserForm Использование VBA В VBA пользовательские формы представляют собой настраиваемые определяемые пользователем формы, предназначенные для приема пользовательского ввода в виде формы. Он имеет различные наборы элементов управления для добавления, такие как текстовые поля, флажки и метки. Подробнее перечислены ниже:
- Шаг 1: На панели инструментов добавьте «CommandButton» в «UserForm».
- Шаг 2: Щелкните правой кнопкой мыши «Командную кнопку» и выберите «Свойства».
- Шаг 3: Измените заголовок «CommandButton» на «Create_Listbox».
- Шаг 4: Дважды щелкните кнопку команды, и появится следующий код.
Частная подпрограмма CommandButton1_Click()
Конец сабвуфера
- Шаг 5: Назовите следующую процедуру «Add_Dynamic_Listbox».
Подпрограмма Add_Dynamic_Listbox()
‘Добавить окно динамического списка и назначить его объекту ‘LstBx’
Установите LstBx = UserForm3.Controls.Add(«Forms.ListBox.1»)
‘Позиция списка
LstBx.Left = 20
LstBx.Top = 10
Конец сабвуфера
- Шаг 6: Нажмите F5, чтобы запустить макрос.
Как добавить элементы в список элементов управления в VBA?
Код для добавления элементов в элемент управления списком в VBA упоминается следующим образом:
Частная подпрограмма Insert _Items _To_LstBox ()
ListBox1.AddItem «Элемент 1»
ListBox1.AddItem «Элемент 2»
ListBox1.AddItem «Элемент 3»
ListBox1.AddItem «Элемент 4»
ListBox1.AddItem «Элемент 5»
Конец сабвуфера
Как удалить элементы из списка элементов управления с помощью VBA?
Код для удаления элементов из элемента управления списком в VBA упоминается следующим образом:
Sub Clr_LstBx()
UserForm3.ListBox1.Clear
Конец сабвуфера
Пример
Допустим, у нас есть ежедневные данные о продажах. Мы хотим подготовить графический пользовательский интерфейс этих данных о продажах, который позволит нам выбирать элементы из списка. Чтобы получить данные о продажах, мы должны изменить ячейку индекса на «ссылку на ячейку» и применить формулу ВПРФормула ВПРФункция Excel выполняет поиск определенного значения и возвращает соответствующее совпадение на основе уникального идентификатора. Уникальный идентификатор однозначно связан со всеми записями базы данных. Например, идентификатор сотрудника, номер списка учащихся, контактный номер клиента, адрес электронной почты продавца и т. д. являются уникальными идентификаторами. читайте больше, как показано на следующих изображениях.
Константы списка в VBA
Константы, их значения и описание приведены в следующей таблице:
Часто задаваемые вопросы
#1 – Как использовать список в Excel?
Списки используются для управления таблицами в пользовательской форме. Строки информации аккуратно управляются без ненужного отображения информации в пользовательской форме.
Пользователь может прокручивать элементы списка. Настройка «типа выбора» позволяет пользователям выбирать несколько вариантов из списка. Когда пользователь выбирает элемент из списка, с таким выбором предпринимается действие.
По умолчанию поле со списком выдает результат, соответствующий порядковому номеру выбранного элемента. Таким образом, если выбран четвертый элемент, на выходе будет число 4.
# 2 — Как заполнить список в Excel VBA?
Обычно список необходимо заполнять значениями каждый раз при открытии рабочей книги. Процедура «Открыть» выполняется каждый раз при открытии Рабочей книги.
Для заполнения списка необходимо использовать следующий код:
С Sheet1.lstListBox
.AddItem «Джеймс»
.AddItem «Келли»
.AddItem «Элизабет»
.AddItem «Джордж»
.AddItem «Уильям»
Конец с
С этим кодом список заполняется 5 именами — Джеймс, Келли, Элизабет, Джордж и Уильям.
#3 – Как получить данные из списка в Excel?
Данные могут быть эффективно использованы только при правильном их извлечении. Шаги для извлечения данных из списка перечислены ниже:
1. Выберите «Управление форматом» в меню после щелчка правой кнопкой мыши по списку.
2. В поле «Ссылка на ячейку» введите координаты пустой ячейки.
3. Выберите ячейку, в которой будут отображаться данные из списка. Необходимо использовать следующую формулу:
«=ИНДЕКС([begin cell]:[end cell],[cell link],0)”
Примечание: «Начальная ячейка» означает первую ячейку списка. «Конечная ячейка» означает последнюю ячейку списка. «Ссылка на ячейку» означает ячейку, координаты которой были введены на втором шаге.
№ 4. В чем разница между списком и полем со списком?
Различия между полем со списком и полем со списком перечислены ниже.
– Окно списка состоит из списка элементов и позволяет пользователям выбирать один или несколько параметров. Напротив, поле со списком состоит из комбинации текстового поля и раскрывающегося списка. Текстовое поле позволяет пользователям вводить элемент. Выпадающий список позволяет пользователям выбирать элемент.
– В поле со списком отображаются все элементы в заданной области сразу, а в поле со списком — по одному элементу за раз. Элементы раскрывающегося списка поля со списком видны, когда пользователь щелкает
это.
– В поле со списком пользователь должен выбирать из доступных элементов, тогда как в поле со списком пользователь может ввести элемент, которого нет в списке.
– Окно списка используется, когда ввод ограничен элементами списка. Однако поле со списком используется там, где упоминается список предлагаемых вариантов.
– Окно со списком занимает больше места, поскольку сразу отображается полный список. С другой стороны, поле со списком помещается на маленьком пространстве, потому что список отображается только при нажатии кнопки
Кнопка «Стрелка вниз.
- Поле со списком в Excel — это список, назначенный переменной, который можно использовать для выбора нескольких элементов.
- В пользовательской форме список можно вставить, выбрав параметр списка.
- При создании списка в Excel необходимо ввести данные в свойствах «ListFillRange», «MultiSelect» и «ListStyle».
- «Режим дизайна» можно отключить, нажав «Режим дизайна».
- При создании списка в пользовательской форме щелкните «Visual Basic» или нажмите клавиши ALT+F11.
Рекомендуемые статьи
Это было руководство по списку в Excel VBA. Здесь мы обсуждаем, как создать поле списка на листе Excel и в пользовательских формах, а также приводим практические примеры и загружаемые шаблоны. Вы также можете посмотреть на эти полезные функции в Excel –
- Редактировать раскрывающийся список в ExcelРедактировать раскрывающийся список в ExcelРаскрывающиеся списки в Excel помогают пользователю вручную вводить данные в ячейку с определенными значениями на выбор.Подробнее
- Флажок в ExcelФлажок в ExcelФлажок в Excel представляет собой квадратное поле, используемое для представления вариантов (или выбора) пользователю для выбора.Подробнее
- Функция VBA MsgBoxVBA MsgBoxVBA MsgBox — это функция вывода, которая отображает обобщенное сообщение, предоставленное разработчиком. Этот оператор не имеет аргументов, и персонализированные сообщения в этой функции записываются в двойных кавычках, а для значений предоставляется ссылка на переменную.Подробнее
apfu Пользователь Сообщений: 20 |
Помогите пожалуйста получить список имен диапазонов из диспетчера имен из закрытой книги с помощью vba с помощью vba. Есть файл, в котором в столбце А указаны пути к файлам с таблицами. В этих файлах возникают неправильные имена умных таблиц и из большого количества файлов необходимо найти те, где имена таблиц неправильные, чтобы зайти в них и исправить. |
Jack Famous Пользователь Сообщений: 10848 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
apfu, открыть книгу, пробежаться циклом по коллекции ActiveWorkbook.Names и запомнить в массив, закрыть книгу Изменено: Jack Famous — 17.09.2021 14:42:51 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
apfu Пользователь Сообщений: 20 |
Jack Famous
, Спасибо за оперативный ответ. Логику я понимаю, Вы правильно написали: открыть книгу, пробежаться циклом по коллекции ActiveWorkbook.Names и запомнить в массив, закрыть книгу, и в исходном файле вывести список имен с указанием их диапазонов. |
Jack Famous Пользователь Сообщений: 10848 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#4 17.09.2021 15:50:11
Вывод списка имён (Names) книги Excel на новый лист Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
apfu Пользователь Сообщений: 20 |
Этот вариант я и нашел и у меня не получилось его переделать, чтобы получить список имен из диспетчера имен из закрытой книги. Если есть возможность. помогите пожалуйста. Изменено: vikttur — 17.09.2021 16:47:28 |
New Пользователь Сообщений: 4581 |
apfu, из закрытой не получится. Нужно макросом открыть книгу, считать имена, закрыть книгу |
МатросНаЗебре Пользователь Сообщений: 5516 |
#7 17.09.2021 16:12:15
|
||
БМВ Модератор Сообщений: 21378 Excel 2013, 2016 |
#8 17.09.2021 16:18:11
а по любому это не имена в том виде который описан. Так что…. Изменено: БМВ — 17.09.2021 16:21:49 По вопросам из тем форума, личку не читаю. |
||
RAN Пользователь Сообщений: 7091 |
#9 17.09.2021 16:29:31
и
это разные вещи, хотя и то, и другое отображается в диспетчере задач.
|
||||||
apfu Пользователь Сообщений: 20 |
МатросНаЗебре, Спасибо большое. но есть проблемы: выводятся только определенные имена, а имена таблиц нет. В столбце А — «Область». в в столбце В — «Имя» (но почему-то по «1_ФОТ’!Print_Area» и «2_командировки’!Print_Area» в имени «область печати» хотя по Print_Area понять можно, в столбце С — «Диапазон». |
apfu Пользователь Сообщений: 20 |
RAN, Спасибо, я таких тонкостей не знал. Попробовал Ваш код. но у меня ничего не получилось. Как его использовать или как-то изменить код МатросНаЗебре, |
RAN Пользователь Сообщений: 7091 |
#12 17.09.2021 17:27:26
Я же не гадалка. Изменено: RAN — 17.09.2021 17:28:46 |
||
apfu Пользователь Сообщений: 20 |
RAN, я действительно попробовал Ваш код: вставил в модуль, запустил, ничего не произошло, по этому и задал вопрос как использовать Ваш код. |
RAN Пользователь Сообщений: 7091 |
#14 17.09.2021 18:56:16
Уточняю. |
||
New Пользователь Сообщений: 4581 |
apfu, от вас нужен небольшой файл-пример (это написано в правилах, вы никого не оскорбляли) |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#16 18.09.2021 14:31:18
а если в редакторе VBE нажать сочетания клавиш Ctrl+G, а потом запустить?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
apfu Пользователь Сообщений: 20 |
Дмитрий(The_Prist) Щербаков, Спасибо огромное, |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#18 18.09.2021 17:28:06
потому что надо запускать когда активна книга с таблицами. Тогда в окне, отображенным по Ctrl+G, будет список.
вообще лучше сразу писать задачу так, как хотите видеть её в итоге, раз в кодах не разбираетесь Подкорректировал
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||||
apfu Пользователь Сообщений: 20 |
#19 18.09.2021 17:54:25 Дмитрий(The_Prist) Щербаков, Спасибо огромное, это супер. |