【发布时间】:2017-11-16 18:53:44
【问题描述】:
我在一个名为“图像”的工作表中有多个名为 cBox1、cBox2 等的复选框。
我有三张表:数据表、图像、数据(分别)。 Images 包含两个带有各种复选框的图像、一个文本框和一个按钮。当我单击按钮时,代码会从文本框和复选框中获取值,并将值插入到 Data 工作表中的表格中。
我正在尝试使用以下代码获取复选框是否被选中:
If ThisWorkbook.Worksheets(2).Shapes("cBox1").OLEFormat.Object.Value = 0 Then
totalOfWeldsInOrder = totalOfWeldsInOrder + 1
s1 = 0
notInOrder = True
End If
但是,值永远不会改变。
如何获取复选框的选中值?
我也尝试了以下方法,但没有成功:
If ThisWorkbook.Worksheets(2).Shapes("cBox1").OLEFormat.Object.Value = -4146 Then
totalOfWeldsInOrder = totalOfWeldsInOrder + 1
s1 = 0
notInOrder = True
End If
还有
If Sheet2.Shapes("cBox1").ControlFormat.Value = xlOff Then
......
End If
编辑:
If ThisWorkbook.Worksheets(2).cBox1.Value = 0 Then
totalOfWeldsInOrder = totalOfWeldsInOrder + 1
s1 = 0
notInOrder = True
End If
返回:
【问题讨论】:
-
您是否尝试过
msgbox (ThisWorkbook.Worksheets(2).Shapes("cBox1").OLEFormat.Object.Value)来验证它肯定在改变,工作表“图像”肯定是工作表(2)?我正在尝试重现一个错误,但它对我来说是成功的:/ -
我的意思是,我使用的是
MsgBox (ActiveSheet.Shapes("Check Box 1").OLEFormat.Object.Value),根据是否检查,我得到一个 1 或 -4146。 IF 条件适用于此,所以我认为您的问题是在不同的工作表上找到复选框或调用其他内容。 -
尝试将
Worksheets(2)更改为Worksheets("Images") -
@jamheadart 更改为 Worksheets("Images") 会产生错误
-
是“下标超出范围”还是
Run Time Error 9?我怀疑您实际上并没有在这里检查正确的表格。