Возвращаемое значение в текстовом поле из Combobox в Excel

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

У меня есть рабочий лист под названием «TPIDLookup», который состоит из 4 столбцов; TPID, Филиал, Компания и имя MQ. Я установил диапазоны для всех четырех столбцов, теперь мне нужны значения из Branch Plant, Company и MQ Name, которые будут отображаться, когда TPID выбран из Combobox. Однако я теряюсь, когда дело доходит до этого в Excel, хотя я знаком с тем, как это будет сделано в Access.

Если это помогает, вот код, который я использовал для создания списка combobox:

Set WS = Worksheets("TPIDLookup") For Each TPID In WS.Range("TPID") With Me.cmbTPID .AddItem TPID.Value End With Next TPID 

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

Большое спасибо,

Джон.

Создайте событие изменения combobox для вашего combbox cmbTPID и используйте этот код. Замените имена текстовых полей и имена диапазонов с вашими фактическими именами:

 Private Sub cmbTPID_Change() Dim ws As Worksheet Dim rFound As Range If Me.cmbTPID.ListIndex = -1 Then 'Nothing selected, or user manually typed an invalid entry 'Clear textboxes Me.txtBranch.Value = vbNullString Me.txtCompanyNo.Value = vbNullString Me.txtMQName.Value = vbNullString Else 'Valid TPID selected 'Find it and populate the textboxes Set ws = ActiveWorkbook.Sheets("TPIDLookup") Set rFound = ws.Range("TPID").Find(Me.cmbTPID.Text, , xlValues, xlWhole) If Not rFound Is Nothing Then Me.txtBranch.Value = Intersect(ws.Range("Branch"), rFound.EntireRow).Value Me.txtCompanyNo.Value = Intersect(ws.Range("CompanyNo"), rFound.EntireRow).Value Me.txtMQName.Value = Intersect(ws.Range("MQName"), rFound.EntireRow).Value End If End If End Sub 

вы можете попробовать это

вот ваш «основной» отрывок подкода, соответствующий вашему вопросу

 Option Explicit Public TPIDRng As Range, branchRng As Range, companyRng As Range, MQRng As Range Sub main() Set TPIDRng = GetColumnUsedRange(Worksheets("TPIDLookup"), "A") Set branchRng = GetColumnUsedRange(Worksheets("TPIDLookup"), "B") Set companyRng = GetColumnUsedRange(Worksheets("TPIDLookup"), "C") Set MQRng = GetColumnUsedRange(Worksheets("TPIDLookup"), "D") With UserForm1 ' change it to whatever name your actual UserForm has .ComboBox1.List = Application.Transpose(TPIDRng) .Show End With Unload UserForm1 End Sub Function GetColumnUsedRange(sht As Worksheet, col As String) With sht Set GetColumnUsedRange = .Range(.Cells(1, col), .Cells(.Rows.Count, col).End(xlUp)) End With End Function 

и вот соответствующий код в панели кода UserForm

 Private Sub ComboBox1_Change() With Me If .ComboBox1.ListIndex = -1 Then .TextBoxBranch.Text = "" .TextBoxCompany.Text = "" .TextBoxMQ.Text = "" Else .TextBoxBranch.Text = branchRng.Cells(.ComboBox1.ListIndex + 1, 1).Value .TextBoxCompany.Text = companyRng.Cells(.ComboBox1.ListIndex + 1, 1).Value .TextBoxMQ.Text = MQRng.Cells(.ComboBox1.ListIndex + 1, 1).Value End If End With End Sub Private Sub CommandButton1_Click() Me.Hide End Sub 

изменить имена (для диапазонов, Userform, TextBoxes и Combobox) в соответствии с вашими потребностями

  • Добавление переменного количества символов в строку, основанная на текущей длине строки
  • Excel - изменение BackColor текстовых полей UserForm и ComboBoxes с помощью VBA
  • Excel VBA Append для TextBox медленный
  • Текстовое поле Excel ActiveX - количество символов или регистр изменений
  • XlsxWriter Python вставляет текстовое поле в диаграмму
  • Удалить строку из текстового поля в слайде PowerPoint из папки - Компонент Error ActiveX не может создать объект
  • Стрелка в текстовом поле пользовательской формы, VBA
  • Excel: текстовое поле объекта не может выполнять возврат каретки в защищенных или незащищенных состояниях листа (w / Text Unlocked) ... почему?
  • Блокировка TextBox от перемещения и изменения размера листа и только редактирование текста Excel VBA
  • Размер текста Excel / PowerPoint после сжатия
  • Как использовать данные, введенные в пользовательскую форму в основном модуле
  • Давайте будем гением компьютера.