Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

Как заполнить текстовое поле на основе выбора combobox в UserForm в Excel?

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

Заполнение текстового поля на основе выбора combobox в Userform с VBA


Легко вставлять или удалять несколько флажков в Excel:

Пакеты для установки в пакетной упаковке коммунальные услуги Kutools for Excel может помочь вам быстро вставить несколько флажков в выбранный диапазон одновременно. И вы можете удалить все флажки в выбранном диапазоне с помощью Пакеты удаления пакетного удаления, Смотрите sccreenshot:

Kutools for Excel: с более чем 200 удобными надстройками Excel, бесплатно попробовать без ограничений в 60-дни. Скачать и бесплатно пробную версию!

Вкладка «Office» Включите редактирование и просмотр с вкладками в Office и упростите свою работу ...
Kutools для Excel добавляет расширенные функции 300 в Excel и повышает производительность на 80%
  • Super Formula Bar (легко редактировать несколько строк текста и формул); Чтение макета (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон ...
  • Объединить ячейки / строки / столбцы и хранение данных; Содержание сплит-клеток; Объединить дублирующиеся строки и сумму / среднее ... Предотвратить повторяющиеся клетки; Сравнить диапазоны ...
  • Выберите Дублировать или Уникальные строки; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих книгах; Случайный выбор ...
  • Точное копирование нескольких ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставьте маркеры, флажки и многое другое ...
  • Любить и быстро вставлять формулы, диапазоны, графики и рисунки; Шифровать ячейки с помощью пароля; Создать список рассылки и отправлять электронные письма ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев ...
  • Суперфильтр (сохранение и применение схем фильтрации к другим листам); Расширенный Сортировать по месяцу / неделе / ​​дню, частоте и многому другому; Специальный фильтр жирным шрифтом, курсив ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разбить данные на несколько листов; Пакетное конвертирование xls, xlsx и PDF ...
  • Работает с Office 2007-2019 и 365 и поддерживает все языки. Это легко развернуть в вашей компании. Полнофункциональная 60-дневная бесплатная пробная версия.

Заполнение текстового поля на основе выбора combobox в Userform с VBA


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

1. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окна.

2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > UserForm, Смотрите скриншот:

3. Затем вставьте элемент управления Combo box и элемент управления текстовым полем в созданную Userform, как показано ниже.

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

5. В открывшемся окне Userform (Code) скопируйте и вставьте следующий код VBA, чтобы заменить оригинал.

Код VBA: заполнить текстовое поле на основе выбора combobox в Userform

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. Нажмите разработчик > Вставить > Кнопка Command (элемент управления ActiveX) для ввода командной строки в рабочий лист.

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

Код VBA: Показать форму пользователя

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

9. Выключите режим разработки в рабочей книге.

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


Статьи по теме:


Kutools для Excel - лучший инструмент для повышения производительности в офисе Повысьте производительность на 80%

  • Супер Формула Бар (легко редактировать несколько строк текста и формул); Макет чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы и хранение данных; Содержание сплит-клеток; Объедините дублирующиеся строки и сумму / среднее... предотвратить повторяющиеся клетки; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения формулы ссылки; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Любимые и быстро вставляемые формулы, Диапазоны, графики и рисунки; Шифрование ячеек с паролем; Создать список рассылки и отправлять электронные письма ...
  • Извлечение текстаДобавить текст, Удалить по позиции, Удалить пространство; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев...
  • Суперфильтр (сохранить и применить схемы фильтров к другим листам); Расширенный поиск по месяцам / неделям / дням, частоте и более; Специальный фильтр жирным шрифтом, курсивом ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Работает с Office 2007-2019 и 365 и поддерживает все языки. Это легко развернуть в вашей компании. Полнофункциональная 60-дневная бесплатная пробная версия.
вкладка kte 201905

Вкладка «Office» предоставляет интерфейс с вкладками для Office и упрощает работу

  • Включить редактирование и чтение с вкладками в Word, Excel, PowerPoint, Издатель, Доступ, Visio и Проект.
  • Открывайте и создавайте несколько документов в новых вкладках одного и того же окна, а не в новых окнах.
  • Увеличивает вашу производительность на 50% и уменьшает сотни щелчков мышью для вас каждый день!
нижняя часть офиса
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Carey Ogola · 1 years ago
    The method is very simple and populates the combo box quite efficiently. However, when I try populating the text box, I get a run-time error '1004': Unable to get the VLookup property of the WorksheetFunction class. Kindly assist with resolving this error.
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Hi,
      May I have your Office version? I need the feedback to check for the error.
      Thanks for your comment.
      • To post as a guest, your comment is unpublished.
        hoa tran · 1 years ago
        office 2010 32 bit
        • To post as a guest, your comment is unpublished.
          crystal · 11 months ago
          Good day,
          I have tried the code in Office 2010 32 bit, but no errors occured.
          Please make sure the sheet name and cell range in the first VBA code are the same with your actual sheet name and range.
          Thanks for your comment.
          • To post as a guest, your comment is unpublished.
            Dimal · 6 months ago
            Hi,
            i have same issue with office 2013. Any solution please
            • To post as a guest, your comment is unpublished.
              Olban Noe Izaguirre · 4 months ago
              i have the same problem....
              • To post as a guest, your comment is unpublished.
                Chaylon · 1 months ago
                I too have the same problem
                • To post as a guest, your comment is unpublished.
                  crystal · 1 months ago
                  Hi Chaylon,
                  Have you replaced the sheet name in the below code line with your actual used worksheet name?
                  Set xRg = Worksheets("Sheet5").Range("A2:B8")