如何用vba使得excel中插入的复选框CheckBox处于选中状态? |
您所在的位置:网站首页 › 复选框被选中状态怎么设置的 › 如何用vba使得excel中插入的复选框CheckBox处于选中状态? |
如何用vba使得excel中插入的复选框CheckBox处于选中状态?
2019年11月19日
作者:水星Excel
9,462 次浏览
暂无评论
在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处于选中状态的所有方法。 想天天收到我的文章更新吗?欢迎关注我的个人公众号
其它相关文章推荐:如何用outlook2016 配置添加QQ邮箱账户?为什么在python命令行窗口中输入pip命令无效?如何在word文档添加第X页,共X页并且会自动更新的页码?如何在ppt中设置单击图形时可以执行宏或vba代码?如何启用宏使VBA代码可以运行?为什么在命令行窗口用pip安装python包提示无权限? 分类 : VBA , 窗体、控件 标签 : ActiveX控件 , CheckBox , vba , 复选框 , 表单控件 , 选中 声明: 本站文章均属原创,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则视为侵权。如果想要每天都收到本站的技术文章推送,可以微信搜索公众号:水星Excel或者Excel_Office关注。其它事宜请加QQ:1722187970 或微信号:xycgenius 联系。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |