当勾选和取消选中checkbox时,使checkboes可见和不可见
下面是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
我有三个checkbox:
MuddyBoots TabletUser WebUser
当勾选MuddyBoots时,我希望TabletUser和WebUser可见,而当MuddyBoots未勾选时,我希望TabletUser和WebUser两个checkbox不可见。
这个工作的代码如下:
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在您确定popup消息后取消选中,则会删除两个checkbox。 如果我注释掉msgbox这行不起作用。 然后我必须重新启动VBA代码。
这些是表单控件。
我也收到错误消息:不能运行macros新用户表单macros“!CheckBox17_Click”。 macros可能不在此工作簿中可用或所有macros可能被禁用。 我已经改变名称框中的checkbox的名称,并有三重checkbox,他们有正确的名称…
我想知道如何得到这个function没有popup消息,没有错误请工作。
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