检查输入错误的问题

时间:2016-07-15 12:45:50

标签: vba excel-vba excel

所以我最近通过一个表格改变了一些编码,我将这些表格提供给日历。

现在正在发生的是,使用下面的代码,每当我填写所有字段并单击“输入项目”时,没有任何反应,但如果我在enterButton中取出关于检查输入的行,它可以工作,任何想法代码出错了?

Private Sub enterButton_Click()

'    If Not CheckInputs Then Exit Sub 'check for fields to have values
    Process GetWs(Me.impactCombobox.Value) ' process data passing the proper worksheet got from GetWs() function
    MsgBox "Project Entered Successfully"
    ClearUFData 'clear the data
End Sub   

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 an Impact Type") Then Exit Function
    If Not CheckControl(Me.lengthListbox, "") Then If Not CheckControl(Me.lengthListbox2, "Please select Project Length") Then Exit Function
    If Not CheckControl(Me.audienceCombobox, "Please select an Audience") Then Exit Function
    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 

What the UserForm looks like http://i64.tinypic.com/iyodp2.png

0 个答案:

没有答案