这是我从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