EXCEL VBA學習筆記:Collection 集合

2021年10月30日15:15:03 科技 1826

Collection 集合的意思,是一個對象。指用戶將一組數據信息,存放於一個“一維數組”中,以便用戶隨時訪問、增添、刪除;這樣的一個集合體。

集合對象對存放在其中的數據類型,沒有限制;可以是各種類型的數值、或文本,或單元格區域,或圖片。剛才的一維數組打了引號,因為只是類似於一維數組。與數組相比,集合不需要先聲明其長度,改變長度時也不需要用語句;刪除其中某個數據後,其後數據會自動往前排,不會留下個空值。

如自定義個可變長數組,添加元素語句

Sub test()
  Dim arr()
    For i = 1 To 10
        ReDim Preserve arr(1 To i) '每次在需要向一維數組中添加新元素時,需要先擴大數組
        arr(i) = i '然後再添加新元素
    Next
End Sub

1、而用集合,則是這樣(.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 '在立即窗口中顯示集合中剩餘元素的個數
    Next

Remove後,集合中餘下的元素是自動向前排。比如Remove(10),原先11位的數據就變成第10位了。

4、清空 remove(NCN.count) ;或是 Set NCN = Nothing (沒有Clear 清空這個方法,2016版Excel)

EXCEL VBA學習筆記:Collection 集合 - 天天要聞

使用For Each遍歷Collection對象時,接收的變量要定義為Variant類型。例:For Each i in NCN 循環, i 這個變量,要麼不聲明,要麼Dim i As Variant,不能聲明成別的類型;NCN集合里就算存的是數字,i 若聲明成數值型,這裡也會報錯。

集合與一維數組相比,在存儲數據(不知數據的多少時)方便些,新增與減少時比數組要靈活,但弊端也很明顯:不能修改已存入的元素;已存入的只能讀取,刪除。比較適用於不知數據多少的存儲類事項。

科技分類資訊推薦

引領科技豪華MPV新風尚 第二代騰勢D9西安車展亮相 - 天天要聞

引領科技豪華MPV新風尚 第二代騰勢D9西安車展亮相

兼具宜商氣度與家用溫情的科技豪華旗艦MPV,第二代騰勢D9迎來西安地區正式亮相。新車依託全球新能源MPV冠軍底蘊,以第二代刀片電池、雙閥雲輦-C、天神之眼5.0智駕等核心技術全面升級,兼顧商務體面與家庭舒適,為西北高端用戶帶來一站式全能出行解決方案。
採購禁入!科華數據材料造假被拒門外 - 天天要聞

採購禁入!科華數據材料造假被拒門外

本報(chinatimes.net.cn)記者胡雅文 北京報道這家趕上AI算力風口的公司,因投標材料造假,被相關採購方列入禁入名單兩年,其此前提出的複議申請也被正式駁回。相關採購平台近日發布公告,明確駁回科華數據股份有限公司(下稱“科華數據”,002335.SZ)此前提交的複議申請。早在一年前,科華數據已被認定在“信息通信樞紐...
快評樂道L80:15萬元級買大五座,這波值得沖? - 天天要聞

快評樂道L80:15萬元級買大五座,這波值得沖?

日前,樂道L80正式發布並開啟預售,其整車購買預售價為24.58萬元起,租電購買預售價則低至15.98萬元起。面對大型SUV市場“細分再細分”之競爭趨勢,這款樂道年度重磅新車都有哪些優勢?又能否成為“大五座SUV革新之作”?下面,圈哥就帶大家全方位感受。
成都直擊凱威德:純電全尺寸SUV的張揚與大氣 - 天天要聞

成都直擊凱威德:純電全尺寸SUV的張揚與大氣

4月22日,凱迪拉克以奧斯卡級盛典規格,將上海保利大劇院點亮為璀璨舞台,在品牌代言人倪妮與全場嘉賓的共同見證下,凱迪拉克全尺寸純電公路旗艦——凱威德耀然上市。新車共推出長續航四驅Pro、高性能四驅Ultra兩款配置,官方售價區間為46.88萬-50.88萬元。