VBA(三)集合、字典


一、集合

  1、集合是什么?

    集合是用來存儲數據的,可以理解為一個容器;

    和數組Array相比,集合可以刪除容器中的任意數據,但是不能夠像數組那樣直接輸出到excel表格中。

       2、創建

Sub test1()
    'Dim c As Collection
    
    'Set c = New Collection
    
    Dim c As New Collection '推薦使用這句來定義集合
    
    For i = 1 To 10
        c.Add i
    Next
    
End Sub

  3、方法

    Add 向集合中添加數據 

Sub test1()
    'Dim c As Collection
    
    'Set c = New Collection
    
    Dim c As New Collection '推薦適用這句來定義集合
    
    For i = 1 To 10
        c.Add i
    Next
    

    MsgBox c(1) '彈出1
    

End Sub
View Code

    Remove 刪除集合中的數據

    原則:后面的數據會自動向前進1位

Sub test1()
    'Dim c As Collection
    
    'Set c = New Collection
    
    Dim c As New Collection '推薦適用這句來定義集合
    
    For i = 1 To 10
        c.Add i
    Next
    
    c.Remove (1)

    MsgBox c(1) '彈出2
    

End Sub
View Code

    Itme 獲取集合中的數據

Sub test2()
    
    Dim c As New Collection
    
    For i = 1 To 10
        c.Add i
    Next
    
    MsgBox c.Item(10) '彈出10
    
    MsgBox c(10) '彈出10,建議用這種方式獲取集合數據
    
End Sub
View Code

  4、屬性

     Count 獲取集合中數據的個數

Sub test1()
    
    Dim c As New Collection
    
    For i = 1 To 10
        c.Add i
    Next
    
    MsgBox c.Count '彈出10
    

End Sub
View Code

二、字典

  1、字典是什么

    可以理解為也是用來裝數據的容器,例如{"小明":"屬猴","小華":"屬狗","小青":"屬蛇","小白":"屬蛇","小小明":"屬猴"}

    字典的特性是一個名稱(Key)對應一個內容(Item),名稱是不可以重復的,但是內容是可以重復的。

    可以利用字典Key的不重復性,進行數據的篩選;

  2、字典的創建

    方法一,前期綁定:

      這個方法優點是代碼提示功能,缺點是在其他電腦上運行這個vba代碼不能夠運行(解決辦法,在運行PC上前期綁定)

      工具 --> 引用 ---> 勾選 "Microsoft Scripting Runtime" 

       

 

       

 

    方法二,后期綁定:

      這個方法優點是可以在其他電腦上運行Vba代碼,缺點是沒有提示功能。

      輸入如下代碼進行綁定:

        Dim dic As Object
        Set dic = CreateObject("scripting.dictionary")

  3、字典的屬性

    ①、CompareMode,當添加key時對key為大小寫是否敏感,默認是為 0 不明感。

    測試如下:

        

 

    ②、Exists,用來判讀字典中是否存在一個key,如果存在返回True 否則 返回 False

    

 

    ③、Count,獲取字典中有多少個元素,返回數值

    測試如下:

    

   

  4、字典的方法

    ①、Add,向字典中添加數據

      dic.add "A","123"

 

    ②、Key,根據Key來修改key

    

 

    ③、Item,根據Key來修改Itme的值

      dic.Item("A") = 2 等價 dic("A") = 2

    

 

 

 

    ④、Keys,獲取所有的key 組成一個集合,通過循環可以獲取每個Key

      注意 str 要定義為一個 Variant

    

 

    ⑤、Items,獲取所有的item 組成一個集合,通過循環可以獲取每個Item

      ... ...

 

    ⑥、Remove,刪除指定的key鍵值對

      dic.Remove("A")

 

    ⑦、RemoveAll,清空字典

      dic.RemoveAll

 

完結... ...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM