
'没有考虑公司交叉出现(一个公司出现在多余一个管理者中)
Option Explicit
Sub abc()
Dim a, i, p, d, m, sum
a = [a1].CurrentRegion.Resize(, 2).Value
Set d = CreateObject("scripting.dictionary")
For i = 2 To UBound(a)
If d.exists(a(i, 1)) Then
MsgBox "公司名重复:" & a(i, 1): Exit Sub
Else
d(a(i, 1)) = a(i, 2)
End If
Next
a = [d1].CurrentRegion.Offset(1).Resize(, 2).Value
For i = 1 To UBound(a) - 1
If d.exists(a(i, 2)) Then
If IsNumeric(sum) Then sum = sum + d(a(i, 2))
Else
sum = "公司名不存在:" & a(i, 2)
End If
If Len(a(i + 1, 1)) > 0 Or i = UBound(a) - 1 Then
m = m + 1
a(m, 1) = a(p + 1, 1): a(m, 2) = sum
sum = 0: p = i
End If
Next
With [g2]
.Resize(UBound(a), 2).ClearContents
.Resize(m, 2) = a
End With
End Sub