Проверка и снятие флажка - PullRequest
0 голосов
/ 26 апреля 2020

Я застрял с простым флажком на пользовательской форме Excel VBA. У меня есть следующий код в событии Click:

Private Sub CheckBox1_Click()
    Me.Label1.Caption = "Checked"
    Me.Label1.ForeColor = vbRed
End Sub

Когда я нажимаю флажок1 в пользовательской форме, заголовок метки изменяется и передний цвет тоже. Но когда я снимаю галочку, надпись на этикетке не исчезает. Где мой код неверен или я снова запускаю событие click?

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

Попробуйте это:

Private Sub CheckBox1_Click()
    If CheckBox1.Value = True Then
        Label1.Caption = "Checked"
        Label1.ForeColor = vbRed
    Else
        Label1.Caption = "UnChecked"
        Label1.ForeColor = vbBlack
    End If
End Sub
0 голосов
/ 26 апреля 2020

После того, как вы покрасите его в красный цвет, он не станет зеленым, если вы не купите другой горшок с краской. И при этом это не изменит заголовок, который был дан без другой инструкции. Попробуйте этот код.

Private Sub CheckBox1_Click()

    Dim Cap As String                       ' = "" at this time

    With CheckBox1
        If .Value Then Cap = "checked"
        Me.Label1.Caption = Cap
        Me.Label1.ForeColor = IIf(.Value, vbRed, vbGreen)
    End With
End Sub

Код намеренно демонстрирует 3 способа достижения желаемого результата. Самый умный - тот, который одновременно использует наименьшее количество кода и является самым легким для чтения (для вас).

...