所有复选框都为空时的msgbox

时间:2016-09-23 13:54:15

标签: vba checkbox warnings msgbox

我正在尝试构建一个代码,如果我的用户表单中的所有复选框都为空,则会使用消息框警告用户。

有关如何在一个用户表单中引用所有复选框控件以构建此代码的任何帮助,我们将不胜感激。

下面是我尝试过的代码示例,但它不起作用。

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

2 个答案:

答案 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