Выберите метод активации из выпадающего списка вместо того, чтобы писать его самостоятельно

0

Ответ внизу поста

Я получил код ниже, чтобы работать, но вопрос остается. Когда я копирую и вставляю код в мой проект, он не будет работать. Но вставка схемы вызова из выпадающего меню и вставка остальной части в его тело работает просто отлично. Итак, новый вопрос: что же делает Excel за моей спиной, чтобы сделать эту работу?


Я пытаюсь получить выбор всех открытых книг в выпадающем списке в Excel 2010/2013. Есть много решений онлайн (более или менее они все одинаковы). Но ни один из них, кажется, не работает для меня. Что я пробовал:

Private Sub UserForm1_Initialize()
    Dim wkb As Workbook
    For Each wkb In Application.Workbooks
        ComboBox1.AddItem wkb.Name
    Next wkb
End Sub

или же

Private Sub Userform1_Initialize()
    Dim wkb As Workbook
    With Me.ComboBox1
        For Each wkb In Application.Workbooks
            AddItem wkb.Name
        Next wkb
    End With
End Sub

Файл сохраняется как xlsm, два элемента действительно называются UserForm1 а также ComboBox1, Есть ли какая-то опция безопасности, которую мне нужно отключить? Пользовательская форма вызывается, но список пуст.

Редактировать 1 : Список рабочих книг в MsgBox работает. Так что должно быть что-то не так с методом добавления.

Sub ListOpenBooks()
'lists each book that's OPEN
    Dim wkb As Workbook
    For Each wkb In Application.Workbooks
          MsgBox wkb.Name
    Next wkb
End Sub

Изменить 2: Использование того же кода в кнопке на пользовательской форме работает также. Таким образом, это должен быть метод Initialize, когда вызывается пользовательская форма.

Ответ

Хорошо, просто недоразумение. В сегменте кода UserForm вам не нужно его имя для инициализации. Просто Private Sub UserForm_Initialize() достаточно. Вы можете полностью игнорировать его имя.

Sensei
источник

Ответы:

1

Хорошо, просто недоразумение. В сегменте кода пользовательской формы вам не нужно ее имя для инициализации. Просто Private Sub UserForm_Initialize() достаточно. Вы можете полностью игнорировать его имя.

Sensei
источник