是否可以将两个复选框链接在一起,以便只选中一个复选框?

时间:2019-05-03 20:06:12

标签: excel vba

我正在努力将表格移至excel并使用VBA来帮助完成流程。由于表单的样式,我必须复制表单而不进行任何更改。

在表单上有2个复选框,一个为“完整”复选框,一个为“部分”复选框。既未选中又未选中的零件均不能存在。目前,我已将代码吐出一个警告框,如果选择此框,则结束。我认为将其简化会比较容易,这样如果一个被选中,另一个将自动取消选中。与其他方式相同。我找不到执行此操作的任何信息。

TL; DR需要格式化2个复选框,因此只能选中一个复选框。

我目前的方法只是吐出一些文字说要修复它。但是我希望有一个更简单的证明计划。

' ERROR CHECK FULL/PARTIAL

If [F8] = True And [F9] = True Then

    MsgBox ("FAI can not be both a Full and Partial")
ELSE
'actual code in middle. 

END IF

1 个答案:

答案 0 :(得分:4)

有两种方法可以做到这一点。使用单选按钮,或检查是否选中了另一个框。

如果单选按钮无论如何都必须选择,则更为简单。您可以将单选按钮放在不同的框架上,以将它们“分组”在一起,如下面的屏幕截图所示。您会看到每个帧都被选中,并且只能选择两个帧之一。

Excel VBA Form

如果您确实要使用复选框,则可以使用下面的代码。

Private Sub CheckBox1_Click()
    If Me.CheckBox1 = True Then
        If Me.CheckBox2 = True Then Me.CheckBox2 = False
    End If
End Sub

Private Sub CheckBox2_Click()
    If Me.CheckBox2 = True Then
        If Me.CheckBox1 = True Then Me.CheckBox1 = False
    End If
End Sub

第一个If会检查是否单击了“选中”复选框,如果选中,则它将检查第二个复选框是否已被选中;如果已选中,则将其取消选中。

>

这是假设您正在创建UserForm,而这些不是Excel工作表上的CheckBoxes。实现方法是相同的,但是代码会略有不同。