如何检查Excel用户窗体上的所有文本框是否都已填写?

时间:2019-05-27 11:10:19

标签: excel vba

我有一堆输入文本框。我需要检查所有TextBoxes是否已填充,然后再处理。由于我有17个文本框,因此谁能帮助我编写代码以检查所有内容。

我尝试使用If ... Then ... Else,但在我的情况下似乎不起作用。

user form

1 个答案:

答案 0 :(得分:4)

您可以…

  1. …遍历所有控件

    For Each Ctrl In Me.Controls
    
  2. …然后检查当前控件是否为TextBox

    If TypeName(Ctrl) = "TextBox" Then
    
  3. …,然后检查它是否为空

    If Ctrl.Text = vbNullString Then
    

所以您最终会得到这样的东西:

Option Explicit

Public Sub ValidateCheckBoxes()
    Dim EmptyBoxesFound As Boolean

    Dim Ctrl As Control
    For Each Ctrl In Me.Controls
        If TypeName(Ctrl) = "TextBox" Then
            If Ctrl.Text = vbNullString Then
                EmptyBoxesFound = True
                Exit For
            End If
        End If
    Next Ctrl

    If EmptyBoxesFound Then
        MsgBox "At least one box is not filled.", vbExclamation
    Else
        MsgBox "All boxes are filled.", vbInformation
    End If
End Sub
相关问题