用户窗体不会遍历“ for循环”,概述用户窗体控件的要求

时间:2019-08-22 22:24:33

标签: excel vba

我有一个用户窗体,操作员必须在其中输入信息到4个文本框,巧妙地命名为TextBox1,TextBox2,TextBox3和TextBox4。

每个文本框都需要唯一的格式,我需要确保在每个文本框中输入的信息都是有效的。

我在OKButton_Click()命令中的“ Me.Controls”循环中放置了“ For Each“ Ctrl”,希望该程序将在用户表单“接受”并卸载之前验证所有输入的信息。

运行程序时,我无法使程序执行循环。相反,它绕着它走。

我已经仔细检查了我需要的EndIf语句的数量,这应该很好。

Private Sub ButtonOK_Click()
Dim Ctrl As Control

For Each Ctrl In Me.Controls
     If TypeName(Ctrl) = "TextBox1" Then
        If Not IsNumeric(TextBox1.Value) Then
            MsgBox "Only numbers allowed in Quantity section."
            TextBox1.Value = ""
            Exit Sub
        ElseIf IsNumeric(TextBox1.Value) Then
            If TextBox1.TextLength > 3 Or TextBox1.Value = 0 Then
            MsgBox "Quantity invalid."
            TextBox1.Text = ""
            Exit Sub
            End If
        ElseIf TextBox1.Value = "" Then
            MsgBox "Need a quantity value."
            Exit Sub
        End If
    ElseIf TypeName(Ctrl) = "TextBox2" Then
        If TextBox2.Text = vbNullString Then
            MsgBox "You must enter a value for Shop Order."
            Exit Sub
        End If
    ElseIf TypeName(Ctrl) = "TextBox3" Then
        If TextBox3.Text = vbNullString Then
            MsgBox "You must enter a value for Heat Number"
            Exit Sub
        End If
    ElseIf TypeName(Ctrl) = "TextBox4" Then
        If IsNumeric(TextBox4.Text) Then
            MsgBox "No numbers allowed in Initials Section"
            TextBox4.Text = ""
            Exit Sub
        ElseIf Not IsNumeric(TextBox4.Text) Then
            If TextBox4.TextLength > 3 Or TextBox4.Text = "" Then
            MsgBox "Enter 3 digit Initials"
            TextBox4.Value = ""
            Exit Sub
            End If
        End If
    End If
Next Ctrl


MsgBox "Values successfully checked"
Unload Me
End Sub

我从excel文件中运行用户窗体,将文本框留空,单击“确定”按钮,然后出现MsgBox“值已成功检查”。

0 个答案:

没有答案