我可以使用哪些VBA对象作为参考?

时间:2012-09-06 21:58:50

标签: vba object

对于创建对象变量的基本函数,我可以参考用户表单中出现的哪种对象?

例如,我知道

    Dim button As CommandButton
    Set button = CommandButton1
    button.Caption = "Text I can change for this object."

将运行并更改CommanButton1的属性。由于不匹配错误,这似乎不适用于用户表单中的标签或文本框。是否有以这种方式使用的对象列表,有没有一种方法可以使用这样的标签或文本框用于数组?

1 个答案:

答案 0 :(得分:0)

由于您在评论中指出您正在按类型查找数组,对于用户表单...以下是适用于标签(MsForms.Label)的示例的草稿。它仍然遍历所有控件,但是一旦创建了数组,就可以自由使用它。

Option Explicit
Private labels() As MSForms.label

Private Sub PopulateLabelArray()
    Dim ctrl As Control
    Dim count As Long
    Dim lbl As Variant
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.label Then
        count = count + 1
        End If
    Next
    ReDim labels(1 To count)
    count = 0
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.label Then
            count = count + 1
            Set labels(count) = ctrl
        End If
    Next
End Sub

Private Sub UserForm_Initialize()
    Dim lbl As variant
    'Populate the label array.
    PopulateLabelArray
    'Test the array
    For Each lbl In labels()
    Debug.Print lbl.Caption
    Next
End Sub

我确信这可以改进,但这很有用。