Назначение обработчиков событий для элементов управления в пользовательской форме, созданных динамически в VBA, в подпункте

Мой вопрос связан с этим . Я создал класс:

Public WithEvents btn As MSForms.CommandButton Private Sub btn_Click() MsgBox "Hello" End Sub 

Код ниже работает хорошо. Я имею в виду 10 кнопок, и после их нажатия появляется окно сообщения.

 Dim collBtns As Collection Public Sub UserForm_Initialize() Dim btn As CommandButton Dim btnH As cButtonHandler Set collBtns = New Collection For k = 1 To 10 Set btn = testform.Controls.Add("Forms.CommandButton.1", True) With btn .Caption = "Title" .Left = 80 .Width = 80 .Top = 20 * k Set btnH = New cButtonHandler Set btnH.btn = btn collBtns.Add btnH End With Next k End Sub 

Однако мне нужно использовать эту процедуру в другой процедуре. Код ниже не работает.

 Dim collBtns As Collection Public Sub UserForm_Initialize() Call Click100 End Sub Public Sub Click100() Dim btn As CommandButton Dim btnH As cButtonHandler Set collBtns = New Collection For k = 1 To 10 Set btn = testform.Controls.Add("Forms.CommandButton.1", True) With btn .Caption = "Title" .Left = 80 .Width = 80 .Top = 20 * k Set btnH = New cButtonHandler Set btnH.btn = btn collBtns.Add btnH End With Next k End Sub 

  • Код для автоматического обновления Userform
  • Можете ли вы использовать оператор if, чтобы решить, в чем UserForm помещать информацию?
  • Сгенерированное кодом командная кнопка в vba Userform_initialize () не реагирует
  • VBA- Итерирование по строковым значениям в массиве и идентификация, если они равны определенному тексту
  • Удалите всю строку на основе дубликата в ячейке без той, которая имеет конкретное значение ячейки
  • Добавление серийной коллекции в диаграмму с помощью UserForm (combobox)
  • Ссылка на самый недавно добавленный рабочий лист
  • Пользовательская форма VBA с DTPicker
  • Автоматическое заполнение пользовательской формы Excel в файле excel из vbscript
  • Как добавить значения в таблицу Excel, нажав кнопку?
  • Вызов пользовательской формы в Excel VBA и продолжение в зависимости от того, какая кнопка была нажата
  • Давайте будем гением компьютера.