我使用Collection来存储Type SubForm
的变量,但是当我去检索对象时,它的类型为Controls
。有人能告诉我为什么会这样吗?
For Each ctl In Me.controls
Select Case ctl.ControlType
Case acSubform
Debug.Print "subform: " & TypeName(ctl)
If (ctl.Name = "a" Or ctl.Name = "b") Then
frmCollection.Add (ctl)
End If
End Select
Next
For Each frm In frmCollection
Debug.Print "Control: " & TypeName(frm)
Next
答案 0 :(得分:3)
子表单是一种控件。根据上下文,TypeName()
似乎返回一般或特定类型,但我不明白它是如何做出选择。
但是,您可能会发现TypeOf
对于确定frm
是否为子表单非常有用。
For Each frm In frmCollection
If TypeOf frm Is SubForm Then
Debug.Print "Control is a subform"
Else
Debug.Print "Control is not a subform"
End If
Next