Простой способ добавить поле со списком и несколько параметров в VBA без пользовательской формы? - PullRequest
1 голос
/ 03 апреля 2019

РЕДАКТИРОВАТЬ: я использую поле со списком ActiveX.

Я некоторое время пытался использовать различные решения, которые я нашел здесь здесь и здесь , но ни один из примеров мне не подходит. Они явно не дают понять, куда именно положить

With Sheet1.ComboBox1
    .AddItem "Paris"
    .AddItem "New York"
    .AddItem "London"
End With

и где бы я ни пытался их поместить, в поле со списком ничего не добавляется.

Кроме того, многие из этих руководств, похоже, используют пользовательские формы. Меня не интересует наличие пользовательской формы, я просто хочу поле со списком с несколькими параметрами в моей электронной таблице Excel, которая в зависимости от того, какое значение пользователь выбирает в поле со списком, ячейка меняет свое значение. Все, что я хочу сделать, это написать что-то вроде этого:

Private Sub ComboBox1_Change()
    .AddItem "Yes"
    .AddItem "Average"
    .AddItem "No"
End Sub

А потом что-то вроде:

if ComboBox1 = "Yes"
then Range("D2").Value = 1

1 Ответ

1 голос
/ 03 апреля 2019

Если вы хотите, чтобы ComboBox загружался при активации рабочего листа, используйте это в объекте рабочего листа в VBA: (это может привести к тому, что ComboBox будет загружать дублирующиеся записи при переключении между листами.)

Private Sub Worksheet_Activate()
    With ComboBox1
        .AddItem "Paris"
    End With
End Sub

Или вы можете поместить его в стандартный модуль и вызывать его всякий раз, когда вам нужно: (это мой предпочтительный метод, за исключением того, что я бы использовал проверку данных, поскольку его легче поддерживать.)

Sub LoadCombo()
    With Sheet1.ComboBox1
        .AddItem "Paris"
    End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...