【发布时间】:2018-02-10 17:51:15
【问题描述】:
我正在尝试通过复选框选择选项。我想让一个特定的框自动检查其他几个框。当我在分配下面的宏后单击有问题的框时,我得到Object required (Error 424):
任何帮助将不胜感激
Public Sub CheckBox1_Click()
If CheckBox21.Value = True Then
CheckBox2.Value = True
CheckBox5.Value = True
CheckBox6.Value = True
CheckBox18.Value = True
CheckBox19.Value = True
CheckBox20.Value = True
CheckBox22.Value = True
CheckBox23.Value = True
CheckBox2.Enabled = False
CheckBox5.Enabled = False
CheckBox6.Enabled = False
CheckBox18.Enabled = False
CheckBox19.Enabled = False
CheckBox20.Enabled = False
CheckBox22.Enabled = False
CheckBox23.Enabled = False
Else
CheckBox2.Enabled = True
CheckBox5.Enabled = True
CheckBox6.Enabled = True
CheckBox18.Enabled = True
CheckBox19.Enabled = True
CheckBox20.Enabled = True
CheckBox22.Enabled = True
CheckBox23.Enabled = True
End If
End Sub
【问题讨论】:
-
您使用了哪种复选框?表单控件还是 ActiveX?此错误表明其中一个或所有复选框不存在。如果它们是表单控件,那么这不是您与它们交互的方式。
-
嗨 JNevill,我使用了表单控制复选框。所以我需要用activeX复选框替换?我使用了表单控件,因为我在文档其他地方的计算中使用了指向具有真/假的单元格的链接
-
是的,如果您打算使用 VBA 与您的 excel 表单内容进行交互,我建议您使用 ActiveX。编程能力要容易 1000 倍。如果您坚持使用表单控件,请考虑通过 VBA 将每个复选框的链接单元格的值更改为“true”或“false”,而不是尝试设置它们的
.value属性。当转到 ActiveX 时,您可以在 VBA 中使用它的 click 事件单击复选框时将单元格设置为 true/false。更多的开销,但更多的控制。两条路线肯定有取舍。 -
您能否通过 VBA 将每个复选框的“链接单元格”扩展为“true”或“false”,而不是尝试设置它们的 .value 属性”我在其他地方使用 true/false 逻辑来做一些数学,但我认为我必须使用宏中的值。我可以在宏中引用真/假链接单元格吗?我会做这样的事情:如果 D5 = True Then D6 = True
-
其实我想通了 Public Sub CheckBox1_Click() If Range("AF3").Value = True Then Range("AA3").Value = True Range("AC3").Value = True Range("AE3").Value = True Range("AG3").Value = True Range("AD3").Value = True Range("AI3").Value = True Else Range("AA3").Value =错误范围("AC3").Value = 错误范围("AE3").Value = 错误范围("AG3").Value = 错误范围("AD3").Value = 错误范围("AI3").Value = False End If End Sub 谢谢!