現在6つのチェックボックスがオーディエンスカテゴリの下にあり、6つのチェックボックスのうち少なくとも1つを選択する必要があるようにするか、「対象を選択してください」というエラーメッセージが表示されます。チェックボックスのチェックボックスのエラー
今のところ、以下のコードでは、6つのボックスのいずれかをチェックするかどうかにかかわらず、プロジェクトは入力されます。
私の現在のコードは次のようになります。ctrl.Value = FalseのようCheckBoxのためのCheckControl機能を設定
Function CheckInputs() As Boolean
If Not CheckControl(Me.nameTextbox, "Please enter your name") Then Exit Function
If Not CheckControl(Me.projectTextbox, "Please enter a Project Name") Then Exit Function
If Not CheckControl(Me.initiativeCombobox, "Please select an Initiative") Then Exit Function
If Not CheckControl(Me.impactCombobox, "Please select Impact Type") Then Exit Function
If Not CheckControl(Me.lengthListbox, "") Then If Not CheckControl(Me.lengthListbox2, "Please enter project length") Then Exit Function
If Not CheckControl(Me.rvpCheckbox, "") Then If Not CheckControl(Me.umCheckbox, "") Then If Not CheckControl(Me.uwCheckbox, "") Then If Not CheckControl(Me.baCheckbox, "") Then If Not CheckControl(Me.uaCheckbox, "") Then If Not CheckControl(Me.otherCheckbox, "Please select an Audience") Then Exit Function
CheckInputs = True
End Function
Private Function CountSelectedListBoxItems(lb As MSForms.ListBox) As Long
Dim i As Long
With lb
For i = 0 To .ListCount - 1
If .Selected(i) Then CountSelectedListBoxItems = CountSelectedListBoxItems + 1
Next i
End With
End Function
Function CheckControl(ctrl As MSForms.Control, errMsg As String) As Boolean
Select Case TypeName(ctrl)
Case "TextBox"
CheckControl = Trim(ctrl.Value) <> ""
Case "ComboBox"
CheckControl = ctrl.ListIndex <> -1
Case "ListBox"
CheckControl = CountSelectedListBoxItems(ctrl) > 0
Case "CheckBox"
CheckControl = ctrl.Value = False
' Case Else
End Select
If errMsg = "" Then Exit Function
If CheckControl Then Exit Function
ctrl.SetFocus
MsgBox errMsg
End Function
でしょうが、適切な経路で?または、私はCheckInputs関数を正しく設定しませんでしたか?
は 'UserForm'上またはシート上の' CheckBoxes'ていますか?それらがシート上にある場合。 ActiveXの 'CheckBoxes'やフォームコントロールを使用しましたか? – Ralph
彼らはユーザーフォームにあります@ラルフ – adrenom