Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 7902|回复: 10

[已解决][求助]如何检测工作表中复选框(非CheckBox)选取状态

[复制链接]
发表于 2009-10-15 10:48 | 显示全部楼层 |阅读模式

Excel工作表中的复选框(是窗体菜单中的复选框,非控件工具栏中的CheckBox)更改其连接的单元格,有没有什么方法能检测到复选框状态的改变(也就是说检测每次点击)。

 

QJcfIRMB.rar (8.2 KB, 下载次数: 10)
发表于 2009-10-15 11:30 | 显示全部楼层

Sub aa()
  Dim Rng As Range
  Dim S$
    Set Rng = ActiveWindow.RangeSelection
    ActiveSheet.Shapes("Check Box 1").Select
    With Selection
      S = IIf(.Value = 1, True, False)
    End With
    MsgBox S
    Rng.Select
End Sub

这样行不行?

回复

使用道具 举报

 楼主| 发表于 2009-10-15 11:39 | 显示全部楼层

QUOTE:
以下是引用FookYou在2009-10-15 11:30:00的发言:

Sub aa()
  Dim Rng As Range
  Dim S$
    Set Rng = ActiveWindow.RangeSelection
    ActiveSheet.Shapes("Check Box 1").Select
    With Selection
      S = IIf(.Value = 1, True, False)
    End With
    MsgBox S
    Rng.Select
End Sub

这样行不行?

谢谢啊,

有没有事件驱动呢,比如我想要用户点了一下复选框便要重算工作表一次(保证结果正确),但我怎么知道用户点了一下复选框呢?

由于我把复选框的状态连接到了单元格E6,所以,如果有方法能检测到E6单元格变化也是可以的,但是用这种方法改变的单元格值好象并不触发Change事件。

补充一下,实际上有多个复选框,如果每个复选框上连个宏我觉得应不是很好的解决方案
[此贴子已经被作者于2009-10-15 11:41:54编辑过]
回复

使用道具 举报

发表于 2009-10-15 11:41 | 显示全部楼层    本楼为最佳答案   

nbOo2vq9.rar (8.3 KB, 下载次数: 84)

回复

使用道具 举报

发表于 2009-10-15 11:42 | 显示全部楼层

老实说,我都不知道吕布要干嘛,回复完全是为了凑热闹[em04]
回复

使用道具 举报

 楼主| 发表于 2009-10-15 12:15 | 显示全部楼层

QUOTE:
以下是引用爱疯在2009-10-15 11:42:00的发言:
老实说,我都不知道吕布要干嘛,回复完全是为了凑热闹[em04]

是回贴时遇到的一个问题,要实现的功能如下:

用户点复选框,如果勾去掉了,把另外两个单元格的值改为False。

由于复选链接到了一个单元格,所以勾的状态变化时单元格的值也会变化,所以开始我想用单元的Change事件来完成。现在经你和老仙的指点,如果把复选框指定一个宏应可以达到我的要求了。

但是由于有三个复选框,每个都写个代码感觉不是很完美。

学到了再种方法取得复选框的值。谢谢你们。

回复

使用道具 举报

发表于 2009-10-15 22:06 | 显示全部楼层

shape对象无法自定义事件,因为不是控件,只能用OnAction指定运行程序,

用ActiveX 控件是可以的

XjxcJlNk.rar (14.34 KB, 下载次数: 39)
回复

使用道具 举报

发表于 2009-10-15 22:35 | 显示全部楼层

学习
回复

使用道具 举报

发表于 2009-10-16 05:11 | 显示全部楼层

学习[em02][em02]
回复

使用道具 举报

发表于 2009-10-16 08:52 | 显示全部楼层

具体不知道你要干吗,是不是只要知道哪个复选框的值改变过?那么以下语句可以实现。

有N个复选框的话,将这些复选框全部指定如下宏:

Sub Test()
    MsgBox Application.Caller & "的值改变了"
End Sub

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 06:30 , Processed in 0.381765 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表