【问题标题】:How do I get checkbox value in a sheet?如何在工作表中获取复选框值?
【发布时间】: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?我怀疑您实际上并没有在这里检查正确的表格。

标签: vba excel checkbox


【解决方案1】:

您的问题有一个简单的解决方案:

使用 Active-X 复选框。在菜单栏中的 Developmenttools 选项卡下有:“Insert”它允许您插入两种复选框,每种控制结构的两种。一个是更新的 active-x 组件,另一个只是出于向后兼容性的原因。所以永远不要使用 Active-X 组件以外的任何东西。那么代码可以如下使用:

If ThisWorkbook.Worksheets(2).Checkbox1.Value = False Then
    totalOfWeldsInOrder = totalOfWeldsInOrder + 1
    s1 = 0
    notInOrder = True
End If

复选框名称“CheckBox1”可以通过显示和编辑它的属性来更改,因此它也可能被称为“okbox”,此名称将在您的代码中替换 CheckBox1。

【讨论】:

  • 在工作表上使用 ActiveX 组件存在屏幕扩展大小问题,但是,请注意,如果您要将这些代码书发送给使用笔记本电脑的人,这些笔记本电脑会对接和扩展屏幕很多。
  • @jamheadart 很高兴知道!不知道那个。有没有这个?
  • @LucasRaphaelPianegonda 我已尝试更改其中一个,但收到一条错误消息。请参阅底部的更新问题n
猜你喜欢
  • 1970-01-01
  • 2015-08-28
  • 2020-08-14
  • 2011-05-27
  • 2016-02-28
  • 2023-03-13
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多