Как заполнить текстовое поле на основе выбора в комбинированном списке на пользовательской форме в Excel?
Предположим, у вас есть таблица, содержащая столбцы с именами и табельными номерами сотрудников, как показано на скриншоте ниже. Теперь вам нужно создать пользовательскую форму с комбинированным списком, содержащим все имена, и текстовым полем, которое будет автоматически заполняться соответствующим табельным номером при выборе имени из списка. Метод, описанный в этой статье, поможет вам справиться с этой задачей.
Заполнение текстового поля на основе выбора в комбинированном списке на пользовательской форме с помощью VBA
Выполните следующие действия, чтобы заполнить текстовое поле соответствующим значением на основе выбора в комбинированном списке на пользовательской форме.
1. Нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic for Applications.
2. В окне Microsoft Visual Basic for Applications нажмите Вставка > Пользовательская форма. См. скриншот:
3. Затем добавьте элемент управления «Комбинированный список» и элемент управления «Текстовое поле» в созданную пользовательскую форму, как показано на скриншоте ниже.
4. Щелкните правой кнопкой мыши по пустому месту на пользовательской форме, а затем выберите Просмотр кода из контекстного меню. См. скриншот:
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. Отключите режим конструктора в книге.
Нажмите кнопку команды, чтобы открыть указанную пользовательскую форму. Вы увидите, что все имена собраны в комбинированном списке. При выборе имени из списка соответствующий табельный номер будет автоматически заполнен в текстовое поле, как показано на скриншоте ниже.
Связанные статьи:
- Как заполнить комбинированный список указанными данными при открытии книги?
- Как автоматически заполнять другие ячейки при выборе значений в выпадающем списке Excel?
- Как автоматически заполнять другие ячейки при выборе значений в выпадающем списке Excel?
- Как заполнить результаты поиска Google на лист Excel?
Лучшие инструменты для повышения продуктивности в Office
Повысьте свои навыки работы в Excel с Kutools для Excel и ощутите новую эффективность. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Щелкните здесь, чтобы получить наиболее нужную вам функцию...
Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в новых окнах.
- Увеличьте свою продуктивность на50% и сократите сотни кликов мышью ежедневно!