大家好,我們今天繼續講解VBA數組與字典解決方案,今日的内容是第43講,将數組資料拆分後合并,作為字典的鍵,實作多條件的資料彙總。在進入字典的講解後,我給大家講各種實際情況中利用字典的解決方案,讓大家逐漸了解到字典的用處,并學會利用字典來解決實際問題。
今日我們要解決的實際問題是,如何把多個資料放在鍵中,然後在分解開,在之前的講解中,我講過兩個條件放到鍵中,今日來講解多個條件的情況,我們看下面的資料:

我們要把上述資料中A.B.C三列的資料作為合并彙總的基準,這個代碼如何寫呢?下面看我給出代碼:
Sub mynzsz_43() '第43講 将數組的拆分後合并作為字典的鍵,實作多條件的資料彙總
Set mydic = CreateObject("scripting.dictionary")
'講資料頁的資料放入數組
myarr = Sheets("資料").UsedRange
'将數組的前三列打碎後放入鍵中
For i = 2 To UBound(myarr)
If Not mydic.exists(Join(Array(myarr(i, 1), myarr(i, 2), myarr(i, 3)), "|")) Then
mydic(Join(Array(myarr(i, 1), myarr(i, 2), myarr(i, 3)), "|")) = myarr(i, 4)
Else
mydic(Join(Array(myarr(i, 1), myarr(i, 2), myarr(i, 3)), "|")) = _
mydic(Join(Array(myarr(i, 1), myarr(i, 2), myarr(i, 3)), "|")) + myarr(i, 4)
End If
Next
Sheets("43").Select
[a:e].Clear
Range("A1:D1") = Array("型号