任一复选框只能为真

Either of the checkbox can only be true

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

我的代码是

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

我在模块中有这段代码,并为两个复选框分配了相同的宏。我收到 运行-time error 424。我相信这是一个非常基本的问题,但我无法延迟。 谢谢

您确定要enable/disable复选框吗?

以下代码确保选中两个框之一。


Public Sub checkbox2_onClick()

Dim oCb1 As Object
Set oCb1 = Table1.Shapes("Checkbox1").OLEFormat.Object

Dim oCb2 As Object
Set oCb2 = Table1.Shapes("Checkbox2").OLEFormat.Object

If oCb2.Value = 1 Then oCb1.Value = 0


End Sub

Public Sub checkbox1_onClick()
Dim oCb1 As Object
Set oCb1 = Table1.Shapes("Checkbox1").OLEFormat.Object

Dim oCb2 As Object
Set oCb2 = Table1.Shapes("Checkbox2").OLEFormat.Object

If oCb1.Value = 1 Then oCb2.Value = 0

End Sub

请按照以下方式进行测试。表单复选框没有单击 event,而 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...