我试图建立一个错误检查我有两个选项框:
projectOptionbox
implementOptionbox
这是我现在用于错误检查其他一些事情的当前代码,只是不确定选项框需要什么样的代码:
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.audienceCombobox, "Please select an Audience") Then Exit Function
If Not CheckControl(Me.impactCombobox, "Please select an Impact Type") Then Exit Function
If Not CheckControl(Me.hoursTextbox, "Please enter the amount of Monthly Hours") Then Exit Function
If Not CheckControl(Me.peopleTextbox, "Please enter the amount of People on the Project") Then Exit Function
If Not CheckControl(Me.lengthListbox, "") Then If Not CheckControl(Me.lengthListbox2, "Please select Project Length") 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 Else
End Select
If errMsg = "" Then Exit Function
If CheckControl Then Exit Function
ctrl.SetFocus
MsgBox errMsg
End Function
答案 0 :(得分:1)
从我从帖子中收集到的内容,听起来你想要开发一种方法来确认组中的OptionButton
已被选中。 (不是寻找应用程序错误本身,而是违反您的业务逻辑)。
这比对其他控件的检查要复杂一些,因为其他控件是独立的。有两种选择。 (1)由于OptionButton
控件实际上不支持null状态,因此可以在Form Initialization
上设置默认选项。然后,无论用户做什么,总会选择其中一个选项。
另一个选项是使用GroupName
的{{1}}属性将按钮放入一个组中。 (当选项按钮位于组中时,这可确保选择其中一个)。接下来,您可以遍历查找相同OptionButtons
的{{1}}的所有控件,然后检查是否至少选中了其中一个OptionButtons
。辅助函数(如下面的函数)可以解决这个问题:
GroupName