无效限定符 – 尝试点击checkbox时

我给我的checkbox分配了一个macros,所以当你勾选它的时候,它会把一个特定的值设置成一个单元格。 然而,我在我的第一个Checkbox1 .value上得到一个invalid qualifier错误。

代码如下:

 Option Explicit Public CheckBox1 As Boolean Sub CheckBox1_Click() If CheckBox1.Value = True Then Range("Q10").Value = 1 If CheckBox1.Value = False Then Range("Q10").Value = 0 End Sub 

谢谢!

我假设你已经使用了一个名为CheckBox1的ActiveX控件,如果是的话,你也遇到了问题,因为你还定义了公共布尔值CheckBox1。

你的代码是不高兴的,因为CheckBox1布尔值的公开声明覆盖了控件variablesCheckBox1,而boolean没有.Value属性。 如果要将checkbox值的使用存储在布尔值中,请将您的公共variables名称从Checkbox1中更改,否则完全删除此声明。

编辑:根据您的评论,您没有链接工作表中的checkbox。 代码必须知道什么CheckBox1。 既然你已经删除了布尔值,它现在不知道Checkbox1是什么。 因此你需要告诉它checkbox在哪里。 你可以做很多种方法。 如果它是一个表单checkbox(不像我第一次想到的ActiveX),那么下面的代码将工作:

 Sub Checkbox1() Dim cb As Object, myCheckBoxValue As Boolean 'Get the object from the worksheet Set cb = ActiveSheet.Shapes("Check Box 1").OLEFormat.Object 'Assign it's value to the boolean (1 is checked, -4146 is unchecked, 2 is mixed (grey box)) If cb.Value = 1 Then myCheckBoxValue = True Else myCheckBoxValue = False 'Output to worksheet If myCheckBoxValue Then ActiveSheet.Range("Q10").Value = 1 Else ActiveSheet.Range("Q10").Value = 0 End If Set cb = Nothing End Sub 

你也可以大大减less这个,下面的工作将会起作用:

 Sub Checkbox1() If ActiveSheet.Shapes("Check Box 1").OLEFormat.Object.Value = 1 Then ActiveSheet.Range("Q10").Value = 1 Else ActiveSheet.Range("Q10").Value = 0 End If End Sub