2016-09-23 27 views
0

我想构建一个代码,如果所有复选框在我的用户窗体中留空,它将警告用户一个消息框。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 

回答

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 
0

我会遍历数组并检查每个复选框的值。如果任何有值=真,那么我们设置一个布尔值为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