前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel VBA解读(156): 数据结构—ArrayList

Excel VBA解读(156): 数据结构—ArrayList

作者头像
fanjy
发布2019-08-13 12:02:44
5.3K0
发布2019-08-13 12:02:44
举报
文章被收录于专栏:完美Excel完美Excel

在VBA中,ArrayList与内置的Collection对象类似,但提供了更丰富的功能,包括排序、数组转换、删除所有元素项目等。然而,ArrayList不是VBA内置的对象,需要我们添加对外部库的引用,才能够使用它。

创建ArrayList

可以使用前期绑定或后期绑定来添加对包含ArrayList的外部库的引用。

前期绑定

在VBE菜单栏中,单击“工具——引用”,在“引用”对话框中,找到并选中“mscorlib.dll”前的复选框,如下图1所示,然后单击“确定”。

图1

此时,可以使用下面的代码来声明ArrayList:

Dim alCol As New ArrayList

或者:

Dim alCol As ArrayList

Set alCol = New ArrayList

后期绑定

可以先不引用,而是使用CreateObject函数来创建ArrayList:

Dim alCol As Object

Set alCol = CreateObject("System.Collections.ArrayList")

添加元素

使用Add方法在ArrayList中添加元素:

Sub testAdd()

Dim alCol As Object

Set alCol =CreateObject("System.Collections.ArrayList")

alCol.Add "完美Excel"

alCol.Add "Excel"

Debug.Print alCol(0)

End Sub

运行结果如下图2所示。

图2

使用Insert方法在指定位置插入元素:

Sub testAdd()

Dim alCol As Object

Set alCol =CreateObject("System.Collections.ArrayList")

alCol.Add "完美Excel"

alCol.Add "Excel"

alCol.Insert 0, "Office"

Debug.Print alCol(0)

End Sub

运行结果如下图3所示。

图3

遍历ArrayList中的元素

使用For循环来遍历:

Sub testReadItem()

Dim alCol As Object

Dim i As Long

Set alCol =CreateObject("System.Collections.ArrayList")

alCol.Add "完美Excel"

alCol.Add "Excel"

alCol.Insert 0, "Office"

For i = 0 To alCol.Count - 1

Debug.Print alCol(i)

Next i

End Sub

运行结果如下图4所示。

图4

可以看出,ArrayList中的下标从0开始,最后一个元素的下标为其元素数量减1。注意,代码中使用Count属性返回ArrayList中元素的个数。

也可以使用For Each循环来遍历:

Sub testReadItem()

Dim alCol As Object

Dim item As Variant

Set alCol =CreateObject("System.Collections.ArrayList")

alCol.Add "完美Excel"

alCol.Add "Excel"

alCol.Insert 0, "Office"

For Each item In alCol

Debug.Print item

Next item

End Sub

运行结果如下图5所示。

图5

(未完待续)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档