我正在尝试构建一个代码,如果我的用户表单中的所有复选框都为空,则会使用消息框警告用户。
有关如何在一个用户表单中引用所有复选框控件以构建此代码的任何帮助,我们将不胜感激。
下面是我尝试过的代码示例,但它不起作用。
Dim Allcheckbox As Variant
Allcheckbox = Array("checkbox1", "checkbox2", "checkbox3", "checkbox4", "checkbox5", "checkbox6")
If Controls(Allcheckbox).Value = False Then
MsgBox ("Please select a comparison criteria.")
End If
答案 0 :(得分:0)
我会遍历数组并检查复选框的每个值。如果有任何值= true,那么我们将布尔值设置为true。这在函数中会更好,你可以传递数组,然后只要传递了true就可以使用Exit函数。
ctrlSelect = False
For Each ctrl In form.Controls
If TypeName(ctrl) = "CheckBox" Then
If crtl.value = "True" Then
ctrlSelect = True
End If
End If
Next ctrl
If Not ctrlSelect Then
MsgBox ("Please select a comparison criteria.")
Exit Sub
End If
答案 1 :(得分:0)
感谢您的帮助Asher!
我最终使用下面的代码提供了解决方案。
Dim x As Integer
x = 0
For Each cCont In Me.Controls
If TypeName(cCont) = "CheckBox" Then
If cCont.Value = True Then
x = x + 1
End If
End If
Next
If x = 0 Then
MsgBox ("Please select a comparison criteria.")
End If