Collection 集合的意思,是一個對象。指用戶將一組數據信息,存放於一個「一維數組」中,以便用戶隨時訪問、增添、刪除;這樣的一個集合體。
集合對象對存放在其中的數據類型,沒有限制;可以是各種類型的數值、或文本,或單元格區域,或圖片。剛才的一維數組打了引號,因為只是類似於一維數組。與數組相比,集合不需要先聲明其長度,改變長度時也不需要用語句;刪除其中某個數據後,其後數據會自動往前排,不會留下個空值。
如自定義個可變長數組,添加元素語句
Sub test()
Dim arr()
For i = 1 To 10
ReDim Preserve arr(1 To i) '每次在需要向一維數組中添加新元素時,需要先擴大數組
arr(i) = i '然後再添加新元素
Next
End Sub1、而用集合,則是這樣(.add 添加的方法)
Dim NCN As New Collection '創建一個集合
For i = 1 To 10
NCN.Add i '對於集合,用Add方法可以加入元素
Next新加入的元素會自動加到隊列尾部。
2、讀取集合中元素的方法(.count 集合的屬性)
For i = 1 To NCN.Count 'Count屬性返回集合中元素總個數
t = NCN(i) '讀取集合中第i個變量存入臨時變量t中
t = NCN.Item(i) '正規的代碼寫法(效果一樣)
Debug.Print NCN(i) '在立即窗口中顯示集合(i)的值
Next集合中元素的起始序號默認為「1」,不是「0」。集合里雖然也叫item但是沒有字典中Items,不能直接全部讀出。
3、集合中元素刪除的方法
For i = NCN.Count to 1 step -1 '遍歷集合元素
NCN.Remove (i) '每次刪去第後面的1個
Debug.Print NCN.Count '在立即窗口中顯示集合中剩餘元素的個數
NextRemove後,集合中餘下的元素是自動向前排。比如Remove(10),原先11位的數據就變成第10位了。
4、清空 remove(NCN.count) ;或是 Set NCN = Nothing (沒有Clear 清空這個方法,2016版Excel)

使用For Each遍歷Collection對象時,接收的變量要定義為Variant類型。例:For Each i in NCN 循環, i 這個變量,要麼不聲明,要麼Dim i As Variant,不能聲明成別的類型;NCN集合里就算存的是數字,i 若聲明成數值型,這裡也會報錯。
集合與一維數組相比,在存儲數據(不知數據的多少時)方便些,新增與減少時比數組要靈活,但弊端也很明顯:不能修改已存入的元素;已存入的只能讀取,刪除。比較適用於不知數據多少的存儲類事項。