Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 勾选和取消勾选复选框时,使复选框可见和不可见_Excel_Vba - Fatal编程技术网

Excel 勾选和取消勾选复选框时,使复选框可见和不可见

Excel 勾选和取消勾选复选框时,使复选框可见和不可见,excel,vba,Excel,Vba,这是我从Tim Williams输入模块1的代码 Sub Tester() Dim isOn As Boolean With ActiveSheet Application.Caller = MuddyBoots isOn = (.CheckBoxes(Application.Caller).Value = xlOn) .CheckBoxes("TabletUser").Visible =

这是我从Tim Williams输入模块1的代码

    Sub Tester()
        Dim isOn As Boolean

        With ActiveSheet
        Application.Caller = MuddyBoots
            isOn = (.CheckBoxes(Application.Caller).Value = xlOn)
            .CheckBoxes("TabletUser").Visible = isOn
            .CheckBoxes("WebUser").Visible = isOn
        End With
    End Sub
我有三个复选框:

泥靴 TabletUser 网络用户

勾选MuddyBoots时,我希望TabletUser和WebUser可见;取消勾选MuddyBoots时,我希望TabletUser和WebUser两个复选框不可见

适用于ish的代码如下:

    Public Sub TestCheckbox()
 Dim s As Shape

 Set s = ActiveSheet.Shapes("MuddyBoots")

  s.Select

  If Selection.Value = xlOn Then
     MsgBox "Checked"
     ActiveSheet.CheckBoxes("TabletUser").Visible = True
     ActiveSheet.CheckBoxes("WebUser").Visible = True
     'code here
 Else
     MsgBox "Not checked"
     ActiveSheet.CheckBoxes("WebUser").Visible = False
     ActiveSheet.CheckBoxes("TabletUser").Visible = False
     'code here
 End If
端接头

如果在确定弹出消息后取消选中MuddyBoots,则这将删除两个复选框。如果我注释掉msgbox行,它将不起作用。然后我必须重新启动VBA代码

这些是表单控件

我还收到错误消息:无法运行宏“新建用户窗体宏”!选中框17_单击'。该宏可能在此工作簿中不可用,或者可能已禁用所有宏。我已经更改了名称框中复选框的名称,并已三次选中复选框,它们的名称正确


我想知道如何在没有弹出消息和错误的情况下使用此功能。

+1简单明了:)感谢您的回复,我仍然收到错误:无法运行宏New User Form macro'!选中框17_单击'。该宏可能在此工作簿中不可用,或者可能已禁用所有宏。我还得到一个新错误:运行时错误424对象必需。复选框也不会消失。我也在Win7上运行2010,您是否收到任何错误消息?可能是因为它仍在尝试访问CheckBox17。。。
Sub Tester()
    Dim isOn As Boolean

    With ActiveSheet
        'Application.Caller = name of calling shape
        isOn = (.CheckBoxes(Application.Caller).Value = xlOn)
        .CheckBoxes("TabletUser").Visible = isOn
        .CheckBoxes("WebUser").Visible = isOn
    End With

End Sub