Использовать флажок, динамически добавляемый в пользовательскую форму

Я добавить CheckBox1 к моему UserForm с этим кодом:

Private Sub UserForm_Initialize()
    Dim opt As Variant
    Set opt = UserForm1.Controls.Add("Forms.checkbox.1", "CheckBox1", True)
End Sub

Теперь, когда я нажимаю на CommandButton Я хочу проверить, если CheckBox1 проверено или нет:

Private Sub CommandButton1_Click()
    If CheckBox1.Value = False Then
        MsgBox "F"
    End If
End Sub

Но этот код не работает; Я думаю, потому что флажок добавляется динамически.
Это всего лишь упрощение кода для решения проблемы.

2 ответа

Решение

Это то, что вы думаете о:

Option Explicit

Private Sub UserForm_Initialize()
    Dim opt As Variant
    Set opt = Me.Controls.Add("Forms.checkbox.1", "CheckBox1", True)
End Sub

Private Sub CommandButton1_Click()
    If Not Me.Controls("CheckBox1") Then
        MsgBox "F"
    End If
End Sub

Однако, в зависимости от вашего опыта и желания писать лучший код, вы можете решить придерживаться некоторого шаблона MVC при работе с формами. Прочитайте их, чтобы узнать больше об этом:

Это должно быть следующим

Private Sub CommandButton1_Click()
If Me.Controls("Checkbox1").Value = False Then
MsgBox "F"
End If
End Sub
Другие вопросы по тегам