我有一个用户窗体,操作员必须在其中输入信息到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“值已成功检查”。