任一复选框只能为真
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 的情况下那样是 True
和 False
。它是 1
和 -4146
...
情况 我有两个表单控件复选框。我正在尝试编写一个代码,只允许其中一个为真。
我的代码是
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 的情况下那样是 True
和 False
。它是 1
和 -4146
...