Option Explicit
Sub Treat1()
Dim WkRg As Range
Dim WkTb
Dim F
Dim ObjDic1 As Object, ObjDic2 As Object
Set ObjDic1 = CreateObject("Scripting.Dictionary")
Set ObjDic2 = CreateObject("Scripting.Dictionary")
Dim K
Dim I As Long, II As Long, III As Long
Dim Temp
WkTb = Sheets("Data").Cells(1, 1).CurrentRegion.Offset(1, 0).Value
WkTb = Application.Index(WkTb, Evaluate("row(1:" & UBound(WkTb, 1) & ")"), Split("2,4,5,13,14,15,16,40", ","))
For I = 1 To UBound(WkTb, 1)
With ObjDic1
If (.exists(WkTb(I, 1))) Then
.Item(WkTb(I, 1)) = .Item(WkTb(I, 1)) + WkTb(I, 8)
Else
.Item(WkTb(I, 1)) = WkTb(I, 8)
End If
End With
With ObjDic2
.Item(WkTb(I, 1)) = Array(WkTb(I, 1), WkTb(I, 2), WkTb(I, 3), WkTb(I, 4) _
, WkTb(I, 5), WkTb(I, 6), WkTb(I, 7), WkTb(I, 8))
End With
Next I
Sheets("Share above 100").Cells(1, 1).CurrentRegion.Offset(1, 0).ClearContents
Sheets("Share below 100").Cells(1, 1).CurrentRegion.Offset(1, 0).ClearContents
II = 1: III = 1
For Each K In ObjDic1
Temp = ObjDic2.Item(K)
If (ObjDic1.Item(K) > 100) Then
II = II + 1
With Sheets("Share above 100")
.Cells(II, 1).Resize(1, 8) = Temp
.Cells(II, 8) = ObjDic1.Item(K)
End With
Else
If (ObjDic1.Item(K) < 100) Then
III = III + 1
With Sheets("Share below 100")
.Cells(III, 1).Resize(1, 8) = Temp
.Cells(III, 8) = ObjDic1.Item(K)
End With
End If
End If
Next
End Sub
Bookmarks