Как заполнить текстовое поле на основе выбора поля со списком в UserForm в Excel?
Предположим, у вас есть таблица, содержащая столбцы «Имя» и «Номер персонала», как показано на скриншоте ниже. Теперь вам нужно создать пользовательскую форму, встроенную в поле со списком, которое собирает все имена внутри, и текстовое поле, которое будет заполнять соответствующий номер штата при выборе имени из поля со списком. Метод, описанный в этой статье, может помочь вам разобраться с этим.
Заполнить текстовое поле на основе выбора поля со списком в пользовательской форме с помощью VBA
Заполнить текстовое поле на основе выбора поля со списком в пользовательской форме с помощью VBA
Пожалуйста, сделайте следующее, чтобы заполнить текстовое поле соответствующим значением на основе выбора поля со списком в пользовательской форме.
1. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Пользовательская форма. Смотрите скриншот:
3. Затем вставьте элементы управления «Поле со списком» и «Текстовое поле» в созданную пользовательскую форму, как показано ниже.
4. Щелкните правой кнопкой мыши любое пустое место пользовательской формы, а затем щелкните Просмотреть код из контекстного меню. Смотрите скриншот:
5. В открывшемся окне Userform (Code) скопируйте и вставьте приведенный ниже код 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 - это диапазон, содержащий значения, которые вы будете заполнять отдельно как в поле со списком Userform, так и в текстовом поле. И Sheet5 - это имя рабочего листа, содержащего диапазон данных. Пожалуйста, измените их по своему усмотрению.
6. нажмите другой + Q ключи для выхода из Microsoft Visual Basic для приложений окно.
7. Нажмите Застройщик > Вставить > Командная кнопка (элемент управления ActiveX) чтобы вставить командную кнопку в рабочий лист.
8. Щелкните вкладку листа правой кнопкой мыши и выберите Просмотреть код из контекстного меню. Затем скопируйте и вставьте код VBA в окно кода.
Код VBA: Показать пользовательскую форму
Private Sub CommandButton1_Click()
'Updated by Extendoffice 2018/1/30
UserForm1.Show
End Sub
9. Выключите режим дизайна в книге.
Нажмите кнопку команды, чтобы открыть указанную форму пользователя. Затем вы можете увидеть, что все имена собраны в поле со списком. При выборе имени из поля со списком соответствующий номер штата будет автоматически подставлен в текстовое поле, как показано ниже.
Статьи по теме:
- Как заполнить поле со списком указанными данными в открытой книге?
- Как автоматически заполнять другие ячейки при выборе значений в раскрывающемся списке Excel?
- Как автоматически заполнять другие ячейки при выборе значений в раскрывающемся списке Excel?
- Как заполнить результаты поиска Google на листе в Excel?
Лучшие инструменты для офисной работы
Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!