如何遍历表单上的所有文本框(忽略表单上可能存在的任何其他类型的控件)。
例如,我非常想做一些验证,它会给出表单上空的文本框列表。
这种方式给了我以后的意思:
Public Sub emptyFields()
Dim txt As Control
Dim msgText As String
msgText = ""
For Each txt In Me.Controls
If _
IsNull(txt) _
Then
msgText = msgText & vbCrLf & txt.Tag
End If
Next txt
MsgBox "Please complete the following:" & vbCrLf & msgText
End Sub
但是,我可以说这是循环遍历表单上其他控件的所有,因为它们在MsgBox
文本中得到一个空行。
我也更喜欢使用文本框的.Caption
属性,这在上述方法中似乎不可用(可能因为并非所有控件都有字幕),因此为什么我改为使用.Tag
属性。
答案 0 :(得分:2)
您可以检查ControlType。
Sub AllText()
Dim ctl As Control
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Then
Debug.Print "textbox"
End If
Next
End Sub
只有标签具有标题属性,但是,控件的控件集合的第0项是标签,因此:
Debug.Print ctl.Controls.Item(0).Caption