действие vba, если флажок снят - PullRequest
0 голосов
/ 21 мая 2018

Я хочу создать подпрограмму, которая вставляет изображение, если флажок установлен, и удаляет его, если он не отмечен, это то, что я получил до сих пор, и первая часть (вставка, когда проверено) работает нормально.Есть идеи, пожалуйста?

Dim chbx
Set chbx = ActiveSheet.CheckBoxes.Add(240, 15, 144, 15.75)
chbx.Characters.Text = "DisplacementPicturesIns"
chbx.OnAction = "DisplacementPicturesIns"
If chbx.Value = True Then
    chbx.OnAction = True
Elseif chbx.Value = False Then
....
End If

1 Ответ

0 голосов
/ 21 мая 2018

Как указано в примечаниях, ваш код не имеет особого смысла.OnAction содержит имя метода, вызываемого после того, как флажок отмечен / снят.Кроме того, ваше состояние тестируется только один раз, после создания элемента управления Checkbox и все.если вы хотите, чтобы ваше состояние проверялось каждый раз, оно должно быть помещено в подпрограмму, которая вызывается в событии ticking / unticking.

Мое предложение: дайте флажку имя, а затем обратитесь к нему внутриsub и проверьте его значение:

Public Sub Example()
    With ActiveSheet.CheckBoxes.Add(240, 15, 144, 15.75)
        .Characters.Text = "DisplacementPicturesIns"
        .Name = "myCheckBox"
        .OnAction = "myCheckBox_Click"
    End With
End Sub
Sub myCheckBox_Click()
    Dim chbx
    Set chbx = ActiveSheet.CheckBoxes("myCheckBox")
    If chbx.Value = 1 Then
        DisplacementPicturesIns
    Else
        'do other stuff 
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...