在excel工作表中,我们可以插入两种“复选框”。一种是表单复选框控件,另一种是ActiveX复选框CheckBox控件,分别如下图所示:
当退出设计模式后,单击鼠标都可以使得表单或者ActiveX复选框CheckBox控件处于打勾选中状态,如下图所示:
在实际的应用中,我们有时候需要根据条件判断达到选中或不选中某个复选框的目的,这时候就需要借助vba来实现。
接下来介绍在vba中选中表单或者ActiveX复选框CheckBox控件的方法。
一、用vba使得表单复选框控件处于打勾选中状态
在excel工作表中插入的表单控件,是隶属于Shapes集合对象的。
如果要设置表单复选框控件的选中状态,可以通过Shape对象的ControlFormat属性获取表单控件格式对象ControlFormat。然后通过设置ControlFormat对象的Value属性值来设置表单复选框控件的选中状态。
如下图所示,表单复选框的选中状态有3种,分别是”未选择”,“已选择”,“混合型”3种。
对应的ControlFormat对象的Value属性值也有3种,其中1表示选中,2表示混合型,0或者-4146表示未选择。
有了以上的知识,可以使用如下的vba代码将表单复选框控件选中:
Sub QQ1722187970() Dim oWK As Worksheet Set oWK = Sheet1 Dim objOLEObject As OLEObject Dim oSP As Shape With oWK Set oSP = .Shapes("复选框 1") With oSP.ControlFormat '未选中 .Value = 0 '选中 .Value = 1 End With End With End Sub
二、用vba使得ActiveX复选框CheckBox控件处于打勾选中状态
对于ActiveX复选框CheckBox控件,要使得处于选中状态,也是一样,通过设置CheckBox对象的Value属性即可。Value属性值设置为0表示不选中,设置为1表示选中。
有了以上的知识,可以使用如下的vba代码将ActiveX复选框CheckBox控件选中:
Sub QQ1722187970() '不选中 Sheet1.CheckBox1.Value = 0 '选中 Sheet1.CheckBox1.Value = 1 End Sub
注意上述代码是放在标准模块中的,所以需要在CheckBox1对象前添加它所处的工作表对象的CodeName,不然会报错,这也是直接调用不同工作表中的已知名字的ActiveX控件的一种技巧。
除了上述的直接调用以外,由于ActiveX控件隶属于OLEObjects集合对象,也可以使用如下的代码进行设置:
Sub QQ1722187970() Dim oWK As Worksheet Set oWK = Sheet1 Dim objOLEObject As OLEObject With oWK Set objOLEObject = .OLEObjects("CheckBox1") With objOLEObject '选中 .Object.Value = 1 End With End With End Sub
以上就是用vba使得excel中插入的复选框CheckBox处于选中状态的所有方法。
想天天收到我的文章更新吗?欢迎关注我的个人公众号
发表评论