Перейти к содержимому

Как заполнить текстовое поле на основе выбора в комбинированном списке на пользовательской форме в Excel?

Author: Siluvia Last Modified: 2025-08-07

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

A screenshot showing a table with Name and Staff Number columns in Excel

Заполнение текстового поля на основе выбора в комбинированном списке на пользовательской форме с помощью VBA


Заполнение текстового поля на основе выбора в комбинированном списке на пользовательской форме с помощью VBA

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

1. Нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic for Applications.

2. В окне Microsoft Visual Basic for Applications нажмите Вставка > Пользовательская форма. См. скриншот:

A screenshot showing how to insert a UserForm in Excel VBA

3. Затем добавьте элемент управления «Комбинированный список» и элемент управления «Текстовое поле» в созданную пользовательскую форму, как показано на скриншоте ниже.

A screenshot of a UserForm in Excel with a ComboBox and TextBox added

4. Щелкните правой кнопкой мыши по пустому месту на пользовательской форме, а затем выберите Просмотр кода из контекстного меню. См. скриншот:

A screenshot showing how to open the code window for the UserForm in Excel VBA

5. В открывшемся окне (Код) пользовательской формы скопируйте и вставьте приведенный ниже код VBA, чтобы заменить исходный.

Код VBA: Заполнение текстового поля на основе выбора в комбинированном списке на пользовательской форме

Dim xRg As Range
'Updated by Extendoffice 2018/1/30
Private Sub UserForm_Initialize()
    Set xRg = Worksheets("Sheet5").Range("A2:B8")
    Me.ComboBox1.List = xRg.Columns(1).Value
End Sub
Private Sub ComboBox1_Change()
    Me.TextBox1.Text = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, xRg, 2, False)
End Sub

Примечание: В коде A2:B2 — это диапазон данных, содержащий значения, которые будут отображаться отдельно как в комбинированном списке, так и в текстовом поле пользовательской формы. Sheet5 — это имя листа, содержащего диапазон данных. Измените их по мере необходимости.

6. Нажмите клавиши Alt + Q, чтобы закрыть окно Microsoft Visual Basic for Applications.

7. Нажмите Разработчик > Вставка > Кнопка команды (элемент управления ActiveX), чтобы вставить кнопку команды на лист.

8. Щелкните правой кнопкой мыши по ярлыку листа и выберите Просмотр кода из контекстного меню. Затем скопируйте и вставьте код VBA в окно кода.

Код VBA: Отображение пользовательской формы

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2018/1/30
    UserForm1.Show
End Sub

9. Отключите режим конструктора в книге.

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

A screenshot showing the UserForm with ComboBox selection populating the TextBox in Excel


Связанные статьи:

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Переворот в анализе данных на основе: Интеллектуальное выполнение   |  Сгенерировать код  |  Создать Пользовательские Формулы  |  Анализ данных и генерация диаграмм  |  Вызов Kutools Functions
Популярные функции: Найти, выделить или отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячейки без потери данных   |   Округлить...
Супер ПОИСК: VLookup с несколькими критериями    VLookup с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (Auto Text)   |  Выбор даты   |  Объединить данные   |  Шифрование/Расшифровка ячеек    Отправить письмо по списку   |  Супер фильтр   |   Специальный фильтр (фильтр по жирному/курсиву/зачеркиванию...) ...
Топ–15 наборов инструментов: 12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...)   |   50+ типов диаграмм (Диаграмма Ганта, ...)   |   40+ практических формул (Расчет возраста на основе даты рождения, ...)   |   19 инструментов вставки (Вставить QR-код, Вставить изображение из пути, ...)   |  12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...)   |  7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...)   |   ... и многое другое
Используйте Kutools на вашем предпочитаемом языке – поддерживаются английский, испанский, немецкий, французский, китайский и более40 других языков!

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


Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна, а не в новых окнах.
  • Увеличьте свою продуктивность на50% и сократите сотни кликов мышью ежедневно!