2016-09-23 3 views
0

Я пытаюсь создать код, который предупредит пользователя с помощью окна сообщения, если все флажки в моей пользовательской форме оставлены пустыми.msgbox when all checkboxes empty

Любая помощь по поводу того, как обращаться ко всем элементам управления флажком в одной пользовательской форме для создания этого кода, будет оценена по достоинству.

Ниже приведен пример кода, который я пробовал, но он не работает.

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

Благодарим за помощь Ашер!

Я закончил использовать этот код, ниже которого предоставлено решение.

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 Function, как только будет передано значение true.

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