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将是真实的。
- Microsoft Excel ::checkboxmacros
- 当任何一个checkbox被选中时,使用MACROS突出显示一个单元格(多个checkbox,一个单元格)
- 在checkboxselect上显示string的macros
- 如何做几个checkbox相同的代码来设置checkbox值?
- 启用其他checkbox的主checkbox
- 检查是否选中了基于工作表的checkbox
- 在VBA中创buildcheckbox,设置“单元格移动和大小”
- 只有在checkbox被选中的情况下运行一个macros,并且当每个checkbox未被选中时,它将恢复到一个设置的“正常”状态
- VBA – 循环中的每个checkbox会在出现变化时作出反应,如何停止?