如果未选中复选框,则执行vba操作

时间:2018-05-21 05:10:18

标签: excel-vba vba excel

如果选中复选框,我想创建一个插入图片的子,如果未选中则删除它,这是我到目前为止所做的,第一部分(选中时插入)有效精细。有什么想法吗?

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 :(得分:0)

就像笔记中指出的那样,你的代码没有多大意义。 勾选/取消勾选复选框后,OnAction保存要调用的方法的名称。 此外,您的条件仅在创建Checkbox控件后进行一次测试,就是这样。如果你希望每次测试你的病情,它必须放在滴答/解开事件中调用的sub内。

我的建议:给复选框一个名字,然后在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