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

  • 本文关键字:复选框 取消 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 = isOn
            .CheckBoxes("WebUser").Visible = isOn
        End With
    End Sub

我有三个复选框:

泥泞的靴子Tablet用户WebUser

当选中MuddyBoot时,我希望TabletUser和WebUser可见,而当取消选中Muddyboot时,则希望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

结束子

如果在您确定弹出消息后取消选中MuddyBoot,则会删除这两个复选框。如果我评论掉消息框行,它就不起作用。然后我必须重新启动VBA代码。

这些是表单控件。

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

我想知道如何让这个功能在没有弹出消息和错误的情况下工作。

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

最新更新