excel - 任一复选框只能为 true

标签 excel vba checkbox

情况 我有两个表单控件复选框。我正在尝试编写一个代码,只允许其中一个为真。

Two form control check box

我的代码是

Sub CheckBox2_Click()
  If CheckBox1.Enabled = True Then
    CheckBox2.Enabled = False
  Else
     If CheckBox2.Enabled = True Then
         CheckBox1.Enabled = False
     End If
  End If    
End Sub

我在模块中有此代码,并为两个复选框分配了相同的宏。我收到运行时错误 424。我相信这是非常基本的问题,但我无法解决它。 谢谢

最佳答案

请按照以下方式进行测试。表单复选框不像 ActiveX 复选框那样具有单击事件。您应该将下一个子与它们两者关联。我测试的复选框的名称为“复选框 1”和“复选框 2”。您必须根据您的情况进行更改,请复制标准模块中的下一个代码,然后将其关联到两个使用的复选框:

Option Explicit

Sub FormCheckBoxChange()
     If ActiveSheet.CheckBoxes(Application.Caller).value = 1 Then
        Select Case Application.Caller
           Case "Check Box 1": ActiveSheet.CheckBoxes("Check Box 2").value = -4146
           Case "Check Box 2": ActiveSheet.CheckBoxes("Check Box 1").value = -4146
        End Select
     End If
End Sub

使用适合您情况的名称,而不是使用的复选框名称。

对于表单文本框,它们的值不像 ActiveX 文本框那样为 TrueFalse。它是 1-4146...

关于excel - 任一复选框只能为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71467648/

相关文章:

c# - 如何正确有效地使用 WorkbookBeforeClose 事件?

vba - 如何使用 VBA 将新项目添加到 Outlook 2007 中的超链接菜单?

vba - 删除行直到达到某个值

c# - 将复选框列表绑定(bind)到数据模型中的字典

javascript - jQuery向url添加多个过滤参数

excel - excel vba(函数或子)可以返回 "Data Validation >> List >> Source"的数据列表吗?

Excel - 合并具有共同值的行并将差异连接在一列中

excel - Index + Match 函数根据特定条件将值乘以百分比

sql-server-2008 - 将 Access 应用程序连接到不同服务器中的 SQL Server 的可能方法?

javascript - 根据主要复选框选择影响辅助单选按钮