1

我正在使用 Collection 来存储 Type 的变量,SubForm但是当我去检索对象时,它是 type 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
4

1 回答 1

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
于 2012-11-16T17:21:53.797 回答