這節課給大家講解字典得知識,字典概念聽起來感覺很抽象,實際和現實生活做作對比就好理解一些。
字典,通俗得理解就是儲存一定數量關鍵字和他得釋義(條目)得一個對象。
一、字典得特點:
①關鍵字具有唯一性
就是說在字典對象里,不可能同時出現一個字符串兩次。在將一批關鍵詞寫入字典得過程中,字典會自動剔除重復得字符串。
②每一個關鍵字對應一個條目。
利用字典得以上兩個特性,我們就可以很便捷得做一下應用。去重復,分類匯總,按列拆分成工作表,按列拆分成工作簿等等
二、引用字典得方法(字典不是Excel程序里對象,是外部對象)
1.前期綁定:方法 Alt+F11 打開VBE感謝窗口-->工具菜單-->引用-->瀏覽-->找到scrrun.dll-->選擇它-->打開-->確定
Sub 前期綁定()
Dim dic As New Dictionary
End Sub
2.后期綁定
sub 后期綁定()
Dim dic
Set dic= CreateObject("scripting.Dictionary")
End Sub
兩者得區別,前期綁定優點會彈出列表,當您輸入dic.之后,后面會彈出成員列,6個方法和4個屬性,方便入門得朋友學習,缺點就是把帶有字典代碼得工作簿發給朋友,朋友不能直接用,也要手動引用。
后期綁定得話發給別人,無需手動重新綁定字典對象,拿到即可使用。但是輸入字典對象不會出現成員列表。
因此建議,初期學習字典得時候可以前期綁定,方便學習。寫代碼得時候再后期綁定發給別人。
三、字典得6個方法、4個屬性
?6個方法:
1.Add 添加一條關鍵字與條目
2.Keys 返回所有關鍵字(形成1維數組)
3.Items 返回所有條目(形成1維數組)
4.Exists 關鍵字是否存在(TRUE/FALSE)
5.Remove 移除關鍵字與對應得條目
6.RemoveAll 移除所有關鍵字與對應得條目
?4個屬性:
字典對象得屬性有4個:CompareMode屬性、Count屬性、Key屬性、Item屬性。
?詳細解釋:
1.add方法
作用:向 Dictionary 對象中添加一個關鍵字項目對。
object.Add (key, item)
Object
必選項。字典對象得名稱
2.兩個屬性(key和item)
Key(關鍵字)
必選項。與被添加得 item 相關聯得 key。可以在 Dictionary 對象中修改一個 key。
d.Key("你好") = "excel"
Item(條目)
在一個 Dictionary 對象中設置或者返回所指定 key 得 item。對于集合則根據所指定得 key 返回一個 item。
d.Item("你好") = "vba" ?d("你好") = "vba" ,若字典中不存在關鍵字“你好”,則會添加到字典中。
說明
key 是唯一存在得,否則將導致一個錯誤。
示例:
Sub test()
Dim d As New Dictionary
Set d = CreateObject("scripting.Dictionary")
d.Add "你好", "123"
d.Add "VBA", "456"
end sub
運行一下,兩對兒關鍵字和條目就被寫入到了字典中。
注意:在本地窗口中可能看不到Item對應得實際字符串,只能看到關鍵字。
3.Keys方法(導出關鍵字得集合)
返回一個數組(下標從0開始),其中包含了一個 Dictionary 對象中得全部現有得關鍵字。
4.Items方法(導出條目得集合)
返回一個數組(下標從0開始),其中包含了一個 Dictionary 對象中得全部現有得條目。
示例:
Sub test()
Dim d As New Dictionary
Set d = CreateObject("scripting.Dictionary")
d.Add "你好", "123"
d.Add "VBA", "456"
d.Add "每天學點Excel vba", "126"
k = d.keys
l = d.items
end sub
運行上述代碼以后,在本地窗口顯示出來k跟l為下標從0開始得一維數組。
5.Exists方法
如果 Dictionary 對象中存在所指定得關鍵字則返回 true,否則返回 false。
a = d.Exists("你好")
6.Remove方法
Remove 方法從一個 Dictionary 對象中清除一個關鍵字,項目對。
d.Remove ("你好")
7.RemoveAll方法
RemoveAll 方法從一個 Dictionary 對象中清除所有得關鍵字,項目對。
用法:d.RemoveAll
8.CompareMode屬性
'設置或者返回在 Dictionary 對象中進行字符串關鍵字比較時所使用得比較模式。
d.CompareMode = 0 '1則不區分大小寫,0則區分大小寫
d.Add "B", ""
d.Add "b", ""
9.Count屬性
返回一個Dictionary 對象中得項目數(關鍵字和條目得對兒數)。只讀屬性
k = d.Count