Свойства и методы Excel в списке vba

Обновлено: 21.11.2024

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

Добавление в один столбец

Вы можете использовать метод "AddItem", если у вас есть список с одним столбцом.
Если вы попытаетесь добавить элементы в список с непустым свойством RowSource, вы получите сообщение об ошибке "Отказано в доступе".
/p>

Выбранный элемент

Получение выбранного в данный момент элемента в одном списке выбора

Несколько столбцов

Список может содержать несколько столбцов с помощью свойства ColumnCount.
Вы можете использовать «AddItem» в сочетании со свойством List, если у вас несколько столбцов.
Все записи списка начинаются с номера строки 0 и номер столбца 0 , т.е. List(0,0) = "text"
Если вы хотите добавить элементы в список с несколькими столбцами, вам нужно использовать "AddItem", чтобы добавить новую строку, а затем либо "Список", либо "Столбец", чтобы добавить определенные элементы после первого столбца.

И номера столбцов, и строк в списке начинаются с 0 по умолчанию, а не с 1.
Единственный способ получить выбранные элементы в списке с множественным выбором – циклически просмотреть весь список.

Добавление с использованием массива

Если ваши данные хранятся в одномерном массиве, вы можете назначить массив напрямую, используя свойство List.

Если ваши данные хранятся в двумерном массиве, вы можете назначить массив напрямую, используя свойство List.

Удаление выделенного

Это удалит текущий выбранный элемент

Более 10 столбцов

Если вы хотите иметь более 10 столбцов в своем списке, вы должны использовать свойство списка .

Текстовая колонка

Это свойство позволяет отображать один набор значений для пользователя, но возвращать другое значение после выбора.
Используйте свойство Text, чтобы вернуть столбец, указанный в столбце TextBound.
Если вы используете свойство Value, вы всегда будете получать элемент в первом столбце.

Привязка столбца

Свойство BoundColumn определяет, на какой столбец ссылаются при обращении к свойству Value записи списка.

Элементы не выбраны

Возможно отобразить список без выбранных элементов (когда listindex = -1).
Хотя после выбора элемента невозможно отменить выбор всех элементов.

Множественный выбор

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

Источник строк

Элементы в списке можно получить из диапазона ячеек Excel с помощью свойства RowSource.
Убедитесь, что вы указали имя рабочего листа, иначе будет использоваться активный лист.

Если вы заполняете список с помощью метода RowSource, вы не сможете заполнить второй список с помощью метода List.
Если вы заполните список с помощью метода RowSource, вы не сможете использовать метод RemoveItem.

Добавление заголовков столбцов

Вы можете отображать заголовки столбцов только при использовании свойства RowSource, а не при использовании массива или добавлении элементов по отдельности.
Чтобы отобразить заголовки столбцов, установите для свойства ColumnHeads значение True.
Не включайте заголовки столбцов на листе в диапазоне, определенном для RowSource.
Строка непосредственно над первой строкой RowSource будет использоваться автоматически.

Добавление уникальных элементов

Вы должны добавить все элементы в коллекцию, обеспечив добавление только уникальных элементов, а затем добавить все элементы из коллекции в список.

Возможно, также стоит отсортировать коллекцию, прежде чем добавлять ее в список.

Измените Integral Height на False, и длина строки будет примерно 13,42
Arial, 10, Regular
Возможно иметь раскрывающийся список — измените свойство — не обязательно Поле со списком !!
Возможно отображать элементы, расположенные через равные промежутки в списке, используя моноширинный шрифт, такой как Courier New. Лучше использовать несколько столбцов.
Нужно ли вам заполнять список данными, чтобы можно было назначить ему массив? Я ДУМАЮ, ЧТО ВАМ НЕ НУЖНО!!
Вертикальная высота списка в режиме конструктора может не совпадать с высотой при фактическом отображении пользовательской формы.

В VBA вы можете создать список, где пользователь может выбрать один из перечисленных вариантов. Список часто используется в пользовательских формах, но его также можно использовать в рабочем листе. В этом руководстве вы узнаете, как создавать, заполнять и удалять список. Вы также увидите, как получить выбор пользователя в VBA и использовать его в коде.

Создать список

Чтобы вставить список в рабочий лист, вам нужно перейти на вкладку "Разработчик", нажать Вставить и в разделе "Элементы управления ActiveX" выбрать Список:< /эм>

Изображение 1. Вставьте список на лист

Выбрав вставленный список, вы можете щелкнуть Свойства на вкладке Разработчик:

Изображение 2. Изменение свойств списка

Здесь вы можете установить различные свойства списка. Для начала мы изменили атрибут Name на lstListBox. Теперь мы можем использовать список с этим именем в коде VBA.

Заполнение списка в коде VBA

Во-первых, нам нужно заполнить список значениями. В большинстве случаев список необходимо заполнять при открытии книги. Из-за этого нам нужно поместить код для заполнения Listbox в объект Workbook, процедуру Open. Эта процедура выполняется каждый раз, когда пользователь открывает Workbook. Вот код:

Как вы можете видеть на изображении 3, мы заполнили наш список 5 именами (Джон, Майкл, Дженнифер, Лилли и Роберт):

Изображение 3. Заполнение списка в VBA

Заполнение списка из диапазона ячеек

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

Если вы хотите включить это, вам нужно перейти к Свойствам списка и установить атрибут ListFillRange:

Изображение 4. Заполните список из диапазона ячеек

Мы связали наш список с диапазоном E2:E5, в который мы поместили нужные имена (Натан, Гарри, Джордж, Роберта). В результате список теперь заполнен этими именами.

Получить выбранный элемент списка в VBA

Назначение окна со списком – предоставить пользователям возможность выбора. Чтобы получить значение, выбранное пользователем, вам нужно использовать этот код:

Выбор пользователей находится в атрибуте Value объекта Sheet1.lstListbox. Это значение присваивается переменной strSelectedItem:

Изображение 5. Получение выбранного значения из списка в VBA

Мы выбрали Гарри в списке и выполнили процедуру. Как вы можете видеть на изображении 5, значением strSelectedItem является Harry, значение, которое мы выбрали. Кроме того, вы можете обрабатывать эту переменную в коде.

Программирование VBA стало проще

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

Очистить список

Чтобы очистить список в VBA, вам нужно использовать метод Clear объекта Sheet1.lstListBox. Он удалит все элементы из списка. Вот код:

Когда мы выполняем код, мы получаем пустой список:

Изображение 6. Очистите список

Использование списка в пользовательской форме

Как мы уже упоминали, список чаще всего используется в пользовательских формах. Чтобы объяснить, как вы можете это сделать, мы сначала вставим форму пользователя. В редакторе VBA щелкните правой кнопкой мыши имя модуля, нажмите Вставить и выберите Пользовательская форма:

Изображение 7. Вставьте форму пользователя

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

Изображение 8. Вставьте список в форму пользователя

Мы назовем ComboBox cmbComboBox. Чтобы заполнить его значениями, нам нужно поместить следующий код в метод Initialize объекта UserForm:

ListBox — это один из элементов управления пользовательской формы. Вы можете выбрать и перетащить ListBox в пользовательскую форму. Этот элемент управления используется для отображения списка элементов в списке. Это используется в пользовательской форме. Дополнительные сведения о ListBox_Control см. в следующей главе. Вы можете увидеть, как загружать элементы в listbox_Control, как перемещать элементы из одного списка в другой, как выбирать элементы из listbox_Control и т. д.

В этой теме:

VBA ListBox_Control в пользовательской форме

Пожалуйста, ознакомьтесь с более подробной информацией о VBA ActiveX ListBox_Control и о том, как мы добавляем его в форму пользователя.

  1. Перейдите на вкладку "Разработчик", а затем нажмите Visual Basic в коде или нажмите клавиши ALT+F11.
  2. Перейдите в меню «Вставка», нажмите «Пользовательская форма». Пожалуйста, найдите скриншот для того же.

Код:

Добавить динамический ListBox_Control в пользовательскую форму с помощью VBA

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

  1. Добавить командную кнопку в пользовательскую форму из панели инструментов.
  2. Щелкните правой кнопкой мыши командную кнопку, выберите "Свойства".
  3. Измените заголовок командной кнопки на «Create_Listbox».
  4. Дважды щелкните командную кнопку.
  5. Теперь он показывает следующий код.
  6. Вызовите приведенную ниже процедуру с именем «Add_Dynamic_Listbox» и найдите указанную ниже процедуру для запуска.

Процедура вызова командной кнопки:

вывод:

Добавить элементы в ListBox_Control с помощью VBA

Найдите следующий код, он покажет вам, как добавлять элементы списка в список.

В приведенном выше коде ListBox1 — это имя listbox_Control. Где additem является свойством списка.

Очистить элементы из ListBox с помощью VBA

Пожалуйста, найдите следующий код, он покажет вам, как очистить элементы списка. Приведенный ниже код очищает элементы списка box1 в UserForm1.

Проверить, выбран ли элемент списка или нет с помощью VBA

Пожалуйста, найдите приведенный ниже код, чтобы узнать, как проверить, выбрано ли поле списка или не используется VBA. В приведенном ниже примере (0) — это порядковый номер.

Значения VBA ListBox по умолчанию в Excel

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

Код 1:

Приведенный ниже код полезен для выбора пустой опции в списке. Где «-1» — это порядковый номер.

Код 2:

Приведенный ниже код полезен для выбора первого элемента в списке из доступного списка. . Где «0» — номер индекса.

Код 3:

Приведенный ниже код полезен для выбора второго элемента в списке из доступного списка. Где «1» — это порядковый номер.

Код 4:

Приведенный ниже код полезен для выбора последнего элемента в списке из доступного списка. Где «1» — это порядковый номер.

Получить общее количество элементов списка

В следующем примере показано, как получить общее количество элементов в списке. В приведенном ниже примере ListBox1 — это имя списка, а ListCount — свойство списка.

Вывод:

Переместить все элементы из ListBox1 в ListBox2

Пожалуйста, найдите приведенный ниже пример кода, он показывает, как переместить все элементы из ListBox1 в ListBox2. В приведенном ниже примере «ListBox1 и ListBox2» — это имена окон списка.

Получить выбранные элементы из ListBox1 в ListBox2

Пожалуйста, найдите приведенный ниже пример кода, он показывает, как получить выбранные элементы из ListBox1 в ListBox2.В приведенном ниже примере «ListBox1 и ListBox2» — это имена окон списка.

Настроить ListBox для выбора нескольких элементов

Пожалуйста, найдите приведенный ниже пример кода, он показывает, как заставить ListBox выбирать несколько элементов. В приведенном ниже примере «ListBox1» — это имя списка.

Заполнить ListBox из массива

Пожалуйста, найдите приведенный ниже пример кода, он показывает, как заполнить ListBox из массива. В приведенном ниже примере «arrList» — это имя массива. А «ListBox1» — это имя списка.

Подробнее о ListBox_Control

Примеры кодов макросов VBA ListBox Excel Добавление очистки нескольких элементов

По следующей ссылке можно найти дополнительные сведения о примерах и кодах макросов VBA ListBox Excel, добавлении и удалении нескольких элементов.

VBA для удаления дубликатов в ListBox Excel

Дополнительные сведения об удалении дубликатов в ListBox в Excel VBA см.

Часто задаваемые вопросы по Excel VBA: часто задаваемые вопросы

Пожалуйста, найдите наиболее часто задаваемые вопросы и ответы для справки. Они объясняются более подробно с примерами.
Подробнее…

Это руководство по VBA научит вас всему, что вы, возможно, захотите узнать об обработке списков управления формами Excel с помощью VBA. Когда я говорю «Управление формой» ListBox, я имею в виду этого маленького парня, расположенного в разделе «Элементы управления формой» на вкладке «Разработчик»> меню «Вставка»:


Список управления формой

Если вы хотите прочитать более полные руководства по управлению формами или элементам управления ActiveX, посетите мою страницу руководств по ActiveX и элементам управления формами.

Прежде чем меня раскритикуют, да, я знаю, что формальным термином является словосочетание «Список», состоящее из двух слов, но я неравнодушен к тому, чтобы ссылаться на него, как если бы вы писали макрос VBA: ListBox. Вы обнаружите, что в этом руководстве я использую их взаимозаменяемо.

Я создал форму календаря, используя поля списка управления формами Excel, на которые я буду ссылаться в этом руководстве, когда мы узнаем, как манипулировать нашими списками с помощью макросов VBA.


Форма списка Excel

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

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

Изменить тип выбора ListBox

  1. Одиночный – позволяет выбрать только один вариант (xlNone).
  2. Несколько — позволяет выбрать несколько вариантов (xlSimple).
  3. Расширить: разрешает множественный выбор и позволяет выбрать диапазон элементов в списке, нажав клавишу Shift (xlExtended).


Тип выбора

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


Список 1

Каждый из трех приведенных ниже методов можно использовать для изменения свойства MultiSelect на любое из трех допустимых значений (xlNone, xlSimple и xlExtended).

Читайте также: