Я создал таблицу 1, которая использует UserForm для добавления новой строки, нажав кнопку (Добавить новую запись). Что я хочу в UderForm, как только я выберу имя из Combobox (comboName), (txtDiscipline) будет автоматически сгенерировано (появится автоматически ) на основе таблицы Table2, в которой для каждого имени указана дисциплина.
Стол1 и Стол2
Пользовательская форма для добавления строк в Table1
Обновлять:
Сообщение после закрытия пользовательской формы
Вы можете создать 2 подпрограммы в пользовательской форме и использовать метод поиска при изменении выпадающего списка. обратите внимание, что если у вас одинаковые имена в столбце F, это не сработает, и тогда вам нужно определить уникальный идентификатор для каждого элемента.
Private Sub comboName_Change()
Dim int_LR As Integer: int_LR = ActiveSheet.Cells(Rows.Count, 6).End(xlUp).Row ' find last row of table
Dim str_Name As String: str_Name = Me.comboName ' look up this name
Dim rng_FindRange As Range ' search range
Set rng_FindRange = ActiveSheet.Range("F3:G" & int_LR).find(str_Name)
If Not rng_FindRange Is Nothing Then
Me.txtDiscipline = ActiveSheet.Cells(rng_FindRange.Row, 7)
Else ' If Not rng_FindRange Is Nothing
Me.txtDiscipline = "Name not found"
End If ' If Not rng_FindRange Is Nothing
End Sub
И когда пользовательская форма инициализируется
Private Sub UserForm_Initialize()
Dim int_LR As Integer: int_LR = ActiveSheet.Cells(Rows.Count, 6).End(xlUp).Row ' find last row of table
Me.comboName.Style = fmStyleDropDownList ' combobox list style
For i = 3 To int_LR ' loop adding items to combobox
Me.comboName.AddItem ActiveSheet.Cells(i, 6)
Next i
End Sub
Попробуйте добавить код в событие userform_initialize: me.showmodal=false и перед завершением события comboname_Change установите rng_FindRange = ничего. Вы также можете изменить событие comboname с изменения на нажатие клавиши и привязать макрос к запуску после нажатия клавиши.
Спасибо, это работает, но когда я закрываю пользовательскую форму, появляется сообщение, и я точно не знаю причину этого сообщения. Выкладываю скриншот сообщения выше.