我正在努力将表格移至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
答案 0 :(得分:4)
有两种方法可以做到这一点。使用单选按钮,或检查是否选中了另一个框。
如果单选按钮无论如何都必须选择,则更为简单。您可以将单选按钮放在不同的框架上,以将它们“分组”在一起,如下面的屏幕截图所示。您会看到每个帧都被选中,并且只能选择两个帧之一。
如果您确实要使用复选框,则可以使用下面的代码。
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。实现方法是相同的,但是代码会略有不同。