我有一个简单的Sub来设置一个复选框(放在工作表上),具体取决于工作表是否受到保护。
chkToggleProtect
绝对存在,因为我在引用它的任一行上都出现了编译错误 -
未定义变量
任何想法我做错了什么?
Private Sub SetToggleProtect(ByRef isprotected As Boolean)
If isprotected Then
chkToggleProtect.Checked = True
Else
chkToggleProtect.Checked = False
End If
End Sub
答案 0 :(得分:1)
原因正是抛出的错误:就该子而言,该变量不存在。请记住完全符合所有条件。
如果这是Forms
复选框,则以下内容将起作用:
Private Sub CheckACheckbox(isProtected As Boolean)
Dim cb As CheckBox
If cb.Name = "ModifyMe" Then
If isProtected Then
cb.Value = True
Else
cb.Value = False
End If
End If
End Sub
相应修改以适应。
答案 1 :(得分:1)
所以在使用立即窗口(我的新朋友)的一些giggery-pokery之后,我发现我可以像这样访问工作表上的Forms
控件 -
Private Sub SetToggleProtect(ByRef IsProtected As Boolean)
If IsProtected Then
WS.Shapes("chkToggleProtect").ControlFormat.Value = xlOn
Else
WS.Shapes("chkToggleProtect").ControlFormat.Value = xlOff
End If
End Sub