昨天的一篇文章,采用了字典的做法。今天開篇講一下字典的最重要的兩個參數key和item。
什麼是字典?VBA中有個Dictionary對象,用于存儲數據關鍵字(Key)和條目(item)對,管着個對象叫做字典
字典存儲數據有兩個特點:
一是條目(item)與關鍵字(key)配對存在。(即一一對應)
二是關鍵字(Key)唯一。(即key沒有不能有重複值)
字典的運用主要是基于以上的兩點。特别是key的唯一性。
字典如何使用由于字典不是VBA本生的用法,所以使用字典的話,需要引用。常規有兩種方法引用字典。一種是前期綁定,一種是後期綁定。前期綁定,用的比較少,篇幅所限就不展開講了。就講一下後期綁定。
sub 後期綁定()
Dim dic
Set dic= CreateObject("Scripting.Dictionary")
End Sub
隻要用一個set 上字典的名字 =CreateObject("Scripting.Dictionary")就綁定了字典。
字典的key及item的理解本篇結合數組詳解一下key及item
先看一列,同樣複制A1:B8區域的數據,分别用數組與字典的寫法。
上述示例中,D,E列的寫入是用的數組,H,I列的寫入用的是字典。
代碼的示例如下:
Sub 字典入門()
Application.ScreenUpdating = False
Dim arr, dic, nRow
Set dic = CreateObject("Scripting.Dictionary")
'把A1到B8的區域的數字,裝入數組
arr = Range("a1").CurrentRegion
'把A列的數組裝入字典的key
'把B列的數據裝入字典的item
nRow = Range("a" & Rows.Count).End(3).Row
For i = 1 To nRow
dic(Cells(i, 1)) = Cells(i, 2)
Next i
'把數組寫到D E列
Range("d1").Resize(UBound(arr), UBound(arr, 2)) = arr
'把字典的key與item分别寫到H I列
Range("h1").Resize(dic.Count, 1) = Application.WorksheetFunction.Transpose(dic.keys)
Range("I1").Resize(dic.Count, 1) = Application.WorksheetFunction.Transpose(dic.items)
Application.ScreenUpdating = True
End Sub
可以看到。把數據放入數組及從數組裡面提出數據,都很方便。
但是把數據裝入字典,就不得不借助于For 循環。下面用圖例講解本代碼:
無論什麼情況下keys與items都隻能是一維的數組,如果你按照表格的思維來理解的話,那麼dic就隻有兩列數據一列為key另外與之對應的為items。
注:如圖所示的三列數據,B列數據不能作為key因為用重複值。隻有A、C列可以作為key。
那麼對于三列以上的數據會用到字典嵌套數組了。無論是key還是item都可以嵌套數組。關于字典的去重及套用數組的用法,在後面再講。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!