Set submit = UserForm1.Controls.Add("Forms.CommandButton.1", "Submit")
То, что - это добавление кнопки ... только не в экземпляре check
.
См. UserForm1.Show ; ссылаясь на UserForm1
в модуле UserForm1
, вы ссылаетесь на экземпляр по умолчанию для этой формы , который может быть или не быть экземпляром, который в данный момент инициализируется.
Это должно исправить:
Set submit = Me.Controls.Add("Forms.CommandButton.1", "Submit")
Модуль UserForm
- это класс с компонентом визуального конструктора и значением атрибута VB_PredeclaredId
, установленным на True
. Экземпляр , предварительно объявленный , является результатом этого скрытого значения атрибута VB_PredeclaredId
, и согласно спецификациям языка его имя соответствует имени самого класса, то есть UserForm1
. Используя Me
в качестве квалификатора вместо UserForm1
, вы ссылаетесь на независимо от того, какой экземпляр в данный момент работает , в отличие от экземпляра класса по умолчанию .
Избегайте ссылки на экземпляр по умолчанию в коде формы.