VBA中,字典(Dictionary)應用的實例講解


大家好,我們今日繼續講解VBA代碼解決方案的第126講內容:在VBA中字典的應用。也許許多的朋友對此比較陌生,在有的語言里字典也稱之為MAP,應用也是比較廣泛的。

字典,其實就是一些“鍵-值”對。使用起來非常方便,有類似於微型數據庫的作用,可用於臨時保存一些數據信息。

一 VBA中創建字典:用的是WSH引用。

Dim myd As Object

Set myd = CreateObject("Scripting.Dictionary")

二 字典的方法,有Add、Exists、Keys、Items、Remove、RemoveAll,六個方法。

① Add 用於添加內容到字典中。如myd.Add key, item 第一個參數為鍵,第二個參數為鍵對應的值

② Exists用於判斷指定的關鍵詞是否存在於字典(的鍵)中。如myd.Exists(key)。如果存在,返回True,否則返回False。通常會在向字典中添加條目的時候使用,即先判斷字典中是否已存在這個記錄,如果不存在則新增,否則進行其它的操作。

③ Keys獲取字典所有的鍵,返回類型是數組。如myd.Keys()

④ Items獲取字典所有的值,返回類型是數組。如myd.Items()

⑤ Remove從字典中移除一個條目,是通過鍵來指定的。myd.Remove(key)如果指定的鍵不存在,會發生錯誤。

⑥ RemoveAll 清空字典。

三 字典的屬性 有Count、Key、Item、ConpareMode四種屬性

① Count用於統計字典中鍵-值對的數量。也可以簡單理解為統計字典中鍵的個數;

② Key用於更改字典中已有的鍵。如:myd.Key("oapp") = "Orange" 如果指定的鍵不存在,則會產生錯誤。

③Item用於寫入或讀取字典中指定鍵的值,如果指定的鍵不存在,則會新增。如.Item("oapp") = 10

下面以一個實例來說明字典的應用:在下圖的A列有不同的鍵,要在對應的鍵中寫入鍵值,然后把C列對應的鍵去掉,並任意增加一個鍵,最后在E,F列寫出最后的鍵和鍵值:

代碼如下:

Sub mynzdd()

Dim dic As Object

Sheets("sheet4").Select

Set dic = CreateObject("Scripting.Dictionary") '引用字典

Dim arr(1 To 100), i As Long '建立一個數組用來給鍵賦值

For i = 1 To 100

arr(i) = i + 99

Next i

i = 1

Do While Cells(i, 1) <> ""

dic(Cells(i, "a").Value) = arr(i) '寫入鍵和鍵值,要注意寫入的方法

i = i + 1

Loop

i = 1

Do While Cells(i, 3) <> ""

dic.Remove (Cells(i, "c").Value) '移除C列的鍵值

i = i + 1

Loop

dic.Add arr(100), "234" '增加一個鍵對應的鍵是arr(100)即199,鍵值是234

[e1].Resize(dic.Count, 1) = Application.Transpose(dic.Keys) '轉置顯示鍵

[f1].Resize(dic.Count, 1) = Application.Transpose(dic.items) '轉置顯示鍵值

End Sub

代碼截圖:

返回的結果如下:

我們可以看到,重復的鍵已經自動的去除了,需要刪除的鍵也已經刪除了,需要增加的也增加了,非常的簡單。

今日內容回向:

1 什么是字典.它的方法和屬性有哪些?

2 如何利用字典去重復的數據?


免責聲明!

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



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