
Я создал форму пользователя в Excel 2016, которая содержит несколько полей со списком, несколько текстовых полей, два переключателя и кнопку отправки. Во-первых, как мне заставить поля со списком ссылаться на список, который я уже настроил?
решение1
Вы можете запустить событие с помощью обработчика событий form_activate. Щелкните правой кнопкой мыши по вашей пользовательской форме в окне проекта и выберите «Просмотреть код»
Вставьте в окно кода что-нибудь вроде этого:
Private Sub UserForm_Activate()
ComboBox1.AddItem ("1")
ComboBox1.AddItem ("2")
ComboBox1.AddItem ("3")
End Sub
Это загрузит элементы в combobox. Вы также можете изменить это на что-то вроде этого:
Private Sub UserForm_Activate()
ComboBox1.AddItem (range("'Sheet1'!A1").value)
ComboBox1.AddItem (range("'Sheet1'!A2").value)
End Sub
если элементы вашего выпадающего списка находятся где-то на листе Excel.
После создания события Activate вам нужно что-то, что в первую очередь откроет форму (с чем, я уверен, вы уже разобрались). Так что-то вроде этого:
Public Sub show_form()
UserForm1.Show
End Sub
затем вы бы вызвали событие show_form с помощью кнопки или чего-то еще на листе Excel.
Полный пример
Вот полный пример:
Создайте новую книгу. Поместите некоторые данные в ячейки A1 и A2. Оставьте имя листа по умолчанию "Лист1"
Нажмите Alt F11, чтобы открыть сторону VBA. Нажмите Вставка > Пользовательская форма
Появляется UserForm1. Щелкните правой кнопкой мыши по нему и выберите «Просмотреть код». Вставьте это:
Private Sub UserForm_Activate()
ComboBox1.AddItem (Range("'Sheet1'!A1").Value)
ComboBox1.AddItem (Range("'Sheet1'!A2").Value)
End Sub
Дважды щелкните ThisWorkBook в дереве. Нажмите Вставить > Модуль. Вставьте это:
Public Sub show_form()
UserForm1.Show
End Sub
Ваше дерево должно выглядеть так:
Теперь в книге Excel добавьте фигуру, например, ящик. Щелкните правой кнопкой мыши по фигуре и выберите Назначить макрос. Выберите show_form.
Теперь попробуйте запустить. Щелкните по форме, которая у вас была. Это должно показать форму. Когда вы щелкните по раскрывающемуся списку, он должен иметь два заполненных элемента.
решение2
Вот полный пример:
Создайте новую книгу. Поместите некоторые данные в ячейки A1 и A2. Оставьте имя листа по умолчанию "Лист1"
Нажмите Alt F11, чтобы открыть сторону VBA. Нажмите Вставка > Пользовательская форма
Появляется UserForm1. Щелкните правой кнопкой мыши по нему и выберите «Просмотреть код». Вставьте это:
Private Sub UserForm_Activate() ComboBox1.AddItem (Range("'Лист1'!A1").Value) ComboBox1.AddItem (Range("'Лист1'!A2").Value) End Sub Дважды щелкните ThisWorkBook в дереве. Нажмите Вставить > Модуль. Вставьте это:
Публичная Подпрограмма show_form() UserForm1.Показать Конец Подпрограммы