|
大家好,我是中藥黨。 上次我們一塊學習了ExcelVBA中和數組相關的一些常用函數的用法,這次我們來介紹集合的常用方法和屬性。 VBA中的集合是用戶定制的一組數據信息,存放于一個特殊的一維數組中,但和數組不同的是,對集合中的數據類型,沒有任何限制,也不需要數據類型相同,比如,數值、文本、工作表、工作簿等等都可以加入集合。 但是有的小伙伴會問了,說集合是一個一維數組,那么為啥不直接建立一個一維數組來存儲信息,而要使用集合對象呢? 答案很簡單,因為使用集合處理可以簡化處理過程,節(jié)省代碼量。 比如,我們要向一個不定長度的一維數組中添加元素,代碼如下圖: 而如果我們要向集合中添加成員,代碼就非常簡單,如下圖: 從上邊的例子很容易看出,用集合來處理這種問題會非常方便,下邊我們就詳細介紹一下集合中幾種方法的使用。 1.Add方法和Item方法 集合的Add方法用來添加一個成員到Collection對象,Item方法利用位置或鍵(key)返回Collection 對象的指定成員。 Add語法:object.Add item, key, before, after
Item語法:object.Item(index) Index參數:指定集合中成員的位置。如果是數值表達式,則 index 必須是從 1 到集合Count 屬性值之間的數值。如果是字符串表達式,則當加入一被引用的成員到集合時,index 必須和 key 參數對應。 下邊我們看幾個使用方法添加集合成員的例子: ①按順序添加集合成員。得到的集合是索引從1開始的自然數,用Item(3)取得集合中第三個成員,如下圖: ②按順序添加集合成員,為集合成員設置字符索引(其實就是起個別名)。得到的集合不僅可以用數字索引取得,也可以用字符索引取得,如下圖: ③使用before和after添加集合成員可以改變新添加成員的順序。Before和after的參數可以設置為數值,也可以設置為已設置的字符索引(key),表示在現在集合相應索引位置的前邊或者后邊添加新成員。 ④可選參數的設置方法。Add方法的參數有四個,除了第一個參數是必需參數,其余參數都是可選參數,當不設置中間可選參數,要設置后邊的可選參數時,中間的可選參數要用逗號隔開,表示不設置這個位置的可選參數。如下圖: ⑤Item是集合的默認缺省方法 Item 方法是集合的缺省方法。因此,以下兩行程序代碼等價: 有的小伙伴提出這樣的問題,如果我想替換集合中某個位置的元素,能不能給該位置的元素賦值呢?如下圖: 在集合中,Item是集合的方法,并不是集合的屬性,是無法通過等號賦值的。正確的做法是在Item(i)之前添加成員,原來的Item(i)就順移到Item(i+1),然后再將item(i+1)刪掉,這樣就達到了目的。如下圖: 2.Remove方法 集合的Remove方法就是把成員從Collection 對象中刪除。 語法:object.Remove index Index參數:必需的。表達式,指定集合成員的位置。如果是數值表達式,則 index 必須是介于 1 和集合Count 屬性值之間的數。如果是字符串表達式,則為成員用Add方法添加到集合時,為成員設置的字符串索引key。 ①通過數字索引刪除集合成員
移除掉原來集合中Item(1)位置的成員,原來Item(2)位置的成員就順移到Item(1)位置,如下圖:
②也可以通過添加成員時設置的字符串索引移除集合成員。
3.Count屬性 集合的唯一一個屬性,返回包含集合中的對象數目,類型是Long(長整數),只讀。 該屬性取得一個集合的成員個數,最常用的場景是在循環(huán)遍歷某個集合中使用,如下圖:
集合在平常的使用是非常的多,但是使用起來卻是比較簡單,只有三個方法(Add、Item和Remove)和一個屬性(Count),即使是參數較多的Add方法,在平常的大部分使用場景中,也很少用到后邊幾個可選參數。小伙伴們在操作數量不定的多工作簿、多工作表或者多個Range區(qū)域的時候,很大程度都會要用到集合,所以,在遇到類似問題時,盡量用集合操作而非一維動態(tài)數組。今天就說到這里,歡迎小伙伴們提出問題、多多交流。 |
|
|