繁体   English   中英

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

[英]What VBA objects can I use for reference?

对于创建对象变量的基本功能,我可以引用哪些形式出现在用户窗体中的对象?

例如,我知道

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

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

既然您在注释中指示您正在为用户表单按类型查找数组,这是适用于标签( 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

我确定可以对此进行改进,但这是功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM