本文介绍一个十分万能的对象,刚开始学习vba并不能理解,这个对象具体能干啥,当深入学习了解了其它对象之后,才发现,这就是个万能的对象。
也就是说,此对象可以代替任何对象。
对象名称:Collection
说明:Collection 对象是一组可称为“单元”的有序项。使用 Collection 对象,可以非常便捷地将一组相关项引用为一个对象,集合成员无需共用相同的数据类型。
创建方法:Dim ColObj As New Collection
通过上面一句代码,就创建了一个collection对象,对象名称为ColObj,之后就可以进行对象成员的添加,删除,提取等等操作了。
Collection对象有3个方法和1个属性,看上去很简单。
具体方法和属性如下图所示:
示例:
本示例是把窗体中的控件定义为一个集合对象Collection,然后可以对集合中的任意对象进行操作。
代码:
如下代码放到模块中
Option Explicit
Dim ColObj As New Collection'定义集合对象
Dim xFormObj As UserForm'定义窗体对象
给集合对象添加成员,应用到Add方法。
Public Sub setColobj()
On Error Resume Next
Set xFormObj = UserForm1
With ColObj
.Add xFormObj.Label1
.Add xFormObj.TextBox1
.Add xFormObj.CommandButton1
.Add xFormObj.ListBox1
End With
Set xFormObj = Nothing
End Sub
提取集合对象中的成员并显示到列表框中
Public Sub ShowColobj(xItemKey)
On Error Resume Next
Dim i As Integer, xStr As String
Set xFormObj = UserForm1
xFormObj.ListBox1.Clear
For i = 1 To ColObj.Count
xFormObj.ListBox1.AddItem ColObj.Item(i).Name, 0'添加到列表框
xStr = xStr & VBA.TypeName(ColObj.Item(i)) & VBA.vbCrLf
Next i
MsgBox xStr
Set xFormObj = Nothing
End Sub
其中,ColObj.Item(i)就是提取成员,加上Name就是把成员对象的名称显示出来,同理,可以加上成员对象的任何属性,只要这个成员具有的属性或方法都可以使用。
这就是说,通过定义Collection集合对象,把许多个控件定义到集合里了,使用的时候,只用其集合的索引值即可以。
至于,这样的方法有什么用处,实际应用中能解决什么问题?就需要在编程中探究一下了。
联系客服