Excel VBA:如何清除CheckBox

Private Sub CheckBox9_Click() If CheckBox9.Value = True Then CheckBox9.Caption = "Done" ActiveWorkbook.Sheets("Well Planning Checklist").Tab.ColorIndex = 4 'ActiveSheet.Tab.ColorIndex = 22 Range("Q17").Value = CheckBox9.Caption Else If LCase(Range("Q17").Value) = CheckBox9.Caption Then CheckBox9.Value = Not (CheckBox9.Value) Else CheckBox9.Value = Not (CheckBox9.Value) End If End If End Sub 

我用上面的方法确保一旦用户点击checkbox,他不能取消选中它。 但是,我希望能够有一个button,我的用户可以用户重置。 一切,而不仅仅是checkbox。 我有下面,但它不工作。 有人可以帮我把它工作吗?

 Private Sub CommandButton1_Click() CheckBox9 ActiveWorkbook.Sheets("Well Design Section").CheckBox9.Caption = "Incomplete " ActiveWorkbook.Sheets("Well Design Section").CheckBox9.Value = False Range("Q17").Value = "Incomplete" End Sub 

为了解决这个问题,你可以用你的CheckBox9_Click子代替它:

 Private Sub CheckBox9_Click() If CheckBox9.Value = True Then CheckBox9.Caption = "Done" ActiveWorkbook.Sheets("Well Planning Checklist").Tab.ColorIndex = 4 'ActiveSheet.Tab.ColorIndex = 22 Range("Q17").Value = CheckBox9.Caption Elseif Checkbox9.Caption <> "Incomplete" Then If LCase(Range("Q17").Value) = CheckBox9.Caption Then CheckBox9.Value = Not (CheckBox9.Value) Else CheckBox9.Value = Not (CheckBox9.Value) End If End If End Sub 

唯一的区别是您的Else语句被replace为Elseif 。 现在只会发生如果Caption <> "Incomplete",这是正确的,因为如果点击checkbox,初始if将是真实的。