VBA学习笔记2-数据结构类型ArrayList
一、这个东西是干什么的
在VBA里数组的排序是很让人头痛的事情,一般采用冒泡,选择,快速,插入,希尔等算法来对数组进行排序
- 冒泡,选择,插入排序等因为循环次数太多,效率感人
- 快速排序,因为条件苛刻,要求整数,并且最大和最小相差太大,速度也会很慢
- 希尔排序,算法真心它能看明白我,我看不明白它
有没有一种又简单,又好用的对数组进行排序的
答案是有,知道的就有2个现成的对象,可以调用,今天我们来学习其中一个ArrayList对象
二、创建ArrayList
1,前期绑定
单击“工具——引用”,在“引用”对话框中,找到并选中mscorlib.dll
前的复选框
Dim arrlist As New arraylist
2,后期绑定
Sub lizi2()
Dim arrList As Object
Set arrList = CreateObject("System.Collections.ArrayList")
Set arrList = Nothing
End Sub
三、常用方法和属性
1,添加
- Add方法,arrList.Add item
itme 可以是数字,字符串,对象等变量,但是如果排序数据类型尽量统一,经过测试数字和文本比较会出错,用这方法的时候,都用数字好了
Sub lizi2()
Dim arrList As Object
Set arrList = CreateObject("System.Collections.ArrayList")
arrList.Add 1
arrList.Add 11
arrList.Add 5
arrList.Add 6
arrList.Add 9
Set arrList = Nothing
End Sub
- Insert方法在特定位置插入数据
Sub lizi2()
Dim arrList As Object, i As Long
Set arrList = CreateObject("System.Collections.ArrayList")
arrList.Add 1
arrList.Add 11
arrList.Add 5
arrList.Add 6
arrList.Add 9
arrList.Insert 0, 10
For i = 0 To arrList.count - 1
Debug.Print i & ":" & arrList(i)
Next
Set arrList = Nothing
End Sub
显示结果
0:10
1:1
2:11
3: