Option Explicit
Public Sub GPE()
Dim Dic As Object, sArr, dArr, Arr, I&, J&, K&, Tem, KH As String, kArr
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet10
sArr = .Range("A14:A379").Value
Arr = .Range("C12:H12").Value
KH = .Range("J2").Value
End With
With Sheet8
kArr = .Range("A13", .Range("A65000").End(3)).Resize(, 7).Value
End With
ReDim dArr(1 To UBound(sArr), 1 To 8)
For I = 1 To UBound(sArr)
Tem = sArr(I, 1)
If Not Dic.Exists(Tem) Then
K = K + 1
Dic.Add Tem, K
End If
Next I
With Sheet6
sArr = .Range("A3", .Range("A65000").End(3)).Resize(, 34).Value
End With
For I = 1 To UBound(sArr)
If sArr(I, 6) = KH Then
Tem = sArr(I, 26)
If Dic.Exists(Tem) Then
For J = 1 To UBound(Arr, 2)
If sArr(I, 3) = Arr(1, J) Then
dArr(Dic.Item(Tem), J) = dArr(Dic.Item(Tem), J) + sArr(I, 19)
dArr(Dic.Item(Tem), 7) = dArr(Dic.Item(Tem), 7) + sArr(I, 19)
End If
Next J
End If
End If
Next I
For I = 1 To UBound(kArr)
If kArr(I, 4) = KH Then
Tem = kArr(I, 1)
If Dic.Exists(Tem) Then
dArr(Dic.Item(Tem), 8) = dArr(Dic.Item(Tem), 8) + kArr(I, 7)
End If
End If
Next I
With Sheet10
.Range("C14:J379").ClearContents
.Range("C14").Resize(K, 8).Value = dArr
End With
Set Dic = Nothing
End Sub