我尝试使用一个IF子句来确定我的复选框(名为“CheckBox1”)是否被选中。
当前代码:
Sub Button167_Click()
If ActiveSheet.Shapes("Check Box 1") = True Then
Range("Y12").Value = 1
Else
Range("Y12").Value = 0
End If
End Sub
这不管用调试器告诉我
ActiveSheet.Shapes("Check Box 1")
然而,我知道这段代码是有效的(尽管它有不同的用途):
ActiveSheet.Shapes("Check Box 1").Select
With Selection
.Value = xlOn
我的复选框(我的页面上有200个)位于sheet1中,名称为“Demande”。每个复选框都具有相同的格式化名称“复选框...”。
5条答案
按热度按时间7lrncoxx1#
选中1,未选中-4146,混合2(灰色框)
7rtdyuoh2#
这就是你要尝试的吗?
将
Activesheet
替换为相关的工作表名称。另外,将Check Box 1
替换为相关复选框名称。nom7f22z3#
在ActiveX复选框控件的VBA宏代码中,使用
对于Form复选框控件,使用
(Use
xlOff
或xlMixed
来检查这些相应的状态。)rwqw0loc4#
在previousanswers的基础上构建,您可以利用
True
为-1且False
为0的事实,并像这样缩短代码:如果选中该复选框,则
.Value
= 1。Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value > 0
返回True
。应用
Abs
函数将True
转换为1
。如果未选中该复选框,则
.Value
=-4146。Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value > 0
返回False
。应用
Abs
函数可将False
转换为0
。wqsoz72f5#
尝试:
Controls("Check Box 1") = True