Пожалуйста, не рассматривайте этот вопрос как повторяющийся вопрос! Этот вопрос явно отличается от ранее похожих запросов.
Последние несколько дней я практикую модуль класса в Excel VBA.
Я поставил перед собой очень простую задачу, но все получилось как чемпион!
Моя задача очень проста!
Challange
У меня есть BLANK Userform , вставленный вручную! С этого момента никакие элементы управления не будут добавлены вручную.
Как только вы инициализируете пользовательскую форму, она должна появиться с одной единственной кнопкой CommandButton в верхнем левом углу формы.
Теперь, нажмите на кнопку, и вы станете сервером другой CommandButton справа от кнопки! Итак, нажмите на вновь созданную кнопку, и еще раз будет создана другая кнопка прямо под предыдущей кнопкой, и процесс будет продолжаться до тех пор, пока вы продолжаете нажимать на только что созданные CommandButtons.
Проблема, с которой я сталкиваюсь
Я могу создать первую кнопку в пользовательской форме после ее инициализации, а также создать новую кнопку под ней , Но ничего после этого. Ничего не происходит, когда я нажимаю на вторую / вновь созданную кнопку.
Вот мой код пользовательской формы
Dim A As New Class2 ' Create an object of the Class (where we declared the events).
Private Sub UserForm_Initialize()
' Create and add the button control.
Dim btEx As MSForms.CommandButton
Set btEx = UserForm1.Controls.Add("Forms.CommandButton.1")
With btEx
.Top = 12
.Left = 12
.Width = 72
.Height = 36
.Caption = "Click Me"
End With
Set A.btEvents = btEx
End Sub
Вот модуль класса
Public WithEvents btEvents As MSForms.CommandButton
Private Sub btEvents_click()
' Create and add the button control.
Dim btEx As MSForms.CommandButton
Set btEx = UserForm1.Controls.Add("Forms.CommandButton.1")
With btEx
.Top = 30
.Left = 30
.Width = 72
.Height = 36
.Caption = "Click Me"
End With
End Sub
Нужно ваше понимание или помогите понять я иду правильным путем? Я не могу назначить событие динамически созданному CommandButton из модуля класса.
Пожалуйста, дайте мне знать, я что-то упустил или это даже невозможно на платформе? Я действительно своего рода новичок ie в программировании в Excel VBA Class Module.
Заранее спасибо.