对于创建对象变量的基本函数,我可以参考用户表单中出现的哪种对象?
例如,我知道
Dim button As CommandButton
Set button = CommandButton1
button.Caption = "Text I can change for this object."
将运行并更改CommanButton1的属性。由于不匹配错误,这似乎不适用于用户表单中的标签或文本框。是否有以这种方式使用的对象列表,有没有一种方法可以使用这样的标签或文本框用于数组?
答案 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
我确信这可以改进,但这很有用。