#excel #vba #combobox #userform
#excel #vba #выпадающий список #пользовательская форма
Вопрос:
У меня есть форма Userform1, внутри которой есть выпадающий список под названием categories, и это поле представляет собой список опций, которые я загружаю в выпадающий список из таблицы в Excel (используя rowsource в свойствах объекта).
Из открытой пользовательской формы1, если я хочу добавить новую опцию в список, который появляется в поле категории, я помещаю кнопку, которая открывает пользовательскую форму2, где я могу создавать категории. Но как только я создаю его и закрываю Userform2, выпадающий список Userform1 не обновляется. Как я могу обновить его, чтобы появился новый параметр, который я создал из Userform 2?
Большое вам спасибо
Комментарии:
1. Попробуйте
Userform1.Combobox.Requery
.2. Вы устанавливаете rowsource в VBA или во время разработки?
3. Здравствуйте, я установил rowsource VBA
4. Я опубликовал образец. посмотрите.
5.
Combobox.Requery
@Harun24HR предназначен для доступа
Ответ №1:
Установите rowsource во время выполнения в UserForm_Initialize()
Код в Userform1
Option Explicit
Private Sub UserForm_Initialize()
PopulateCombo
End Sub
Sub PopulateCombo()
Dim ws As Worksheet
Dim rng As Range
Dim lRow As Long
'~~> Change this to the relevant sheet
Set ws = Sheet1
With ws
'~~> Find Last Row in Col A
'~~> Change column as applicable
lRow = .Range("A" amp; .Rows.Count).End(xlUp).Row
'~~> Identify the range starting from A1
'~~> Change as applicable
Set rng = .Range("A1:A" amp; lRow)
'~~> Set your rowsource
ComboBox1.RowSource = rng.Address(, , , True)
End With
End Sub
И затем вы можете сбросить RowSource
, используя PopulateCombo
код из Userform2
Что-то вроде
Код в Userform2
Private Sub CommandButton1_Click()
'
'~~> After adding data
'
UserForm1.PopulateCombo
End Sub
Комментарии:
1. Чем вы очень, я постараюсь
2. здравствуйте. У меня это не сработало. У вас есть какие-либо другие идеи.
3. Что вы имеете в виду, это не сработало? Код, которым я поделился выше, проверен и протестирован. Можете ли вы поделиться своим кодом и сообщениями об ошибках, если таковые имеются?