如何根据复选框状态更改更改行颜色?

时间:2014-03-10 13:07:36

标签: excel-vba vba excel

在编辑复选框的宏时,我一直在尝试多个代码但似乎没有效果,我总是得到error 424关于丢失对象的东西 enter image description here

所以说它是Checkbox44_OnClick()我不能使用Checbox44.value或根本不使用

如何根据复选框状态更改行颜色?

Sub CheckBox44_Click()
    If Checkbox44.Value = True Then
        Worksheets("Sheet1").Range("8:8").Interior.ColorIndex = 36
    End If
End Sub

2 个答案:

答案 0 :(得分:2)

Excel中有几种不同类型的复选框(表单控件,ActiveX控件)。您似乎正在使用表单控件复选框。试试这段代码:

Sub CheckBox44_Click()
With ActiveSheet.CheckBoxes("CheckBox44")
  If .Value = xlOn Then
     Worksheets("Sheet1").Range("8:8").Interior.ColorIndex = 36
  End If
End With
End Sub

确保正确设置了复选框的名称(选中复选框后选中名称框):

enter image description here

答案 1 :(得分:0)

如果工作表受密码保护,则会出现此错误。

尝试以下方法:

Sub CheckBox44_Click()
Sheet1.Unprotect ("Your Password")
    If Checkbox44.Value = True Then
        Worksheets("Sheet1").Range("8:8").Interior.ColorIndex = 36
    End If
Sheet1.Protect ("Your Password")
End Sub