代码循环通过用户窗体的控件,如果任何字段为空则提示

时间:2016-11-26 07:30:36

标签: excel-vba vba excel

我有一个用户表单,其图像附在下面。 enter image description here

我需要的是当我按下提交按钮时,如果用户表单中有任何文本框留空,则应该提示。

这是我的代码:

Private Sub CommandButton1_Click()

Dim intTextBox As Integer
For intTextBox = 1 To 2

If Controls("TextBox" & intTextBox) = "" Then
MsgBox ("TextBox" & intTextBox & "blank. Please enter relevant data!")
Exit For
End If
Next intTextBox

End Sub

我在如果控件(“TextBox”& intTextBox)=“”然后因为找不到指定的对象而收到错误。

请审核并提出建议。

1 个答案:

答案 0 :(得分:1)

要查找哪个TextBox为空,您需要遍历user_Form中的所有Controls。然后,对于每个Control,您需要检查其类型TextBox >> (如果是),然后检查它是否为空。

<强>代码

Option Explicit

Private Sub CommandButton1_Click()

Dim ctrl As Control

' loop through all controls in User_Form
For Each ctrl In Me.Controls
    ' check if "TextBox"
    If TypeName(ctrl) = "TextBox" Then

        ' if current TextBox is empty
        If ctrl.Text = "" Then
            MsgBox ctrl.Name & "blank. Please enter relevant data!"
            Exit For
        End If

    End If

    ' check if "ComboBox"
    If TypeName(ctrl) = "ComboBox" Then

        ' if current ComboBox is empty
        If ctrl.Value = "" Then
            MsgBox ctrl.Name & "blank. Please enter relevant data!"
            Exit For
        End If

    End If
Next ctrl

End Sub