|
|
本帖最后由 啸海 于 2025-4-16 13:17 编辑
Sub xh()
ir = Range("b65536").End(3).Row
arr = Range("a1:h" & ir)
Set d = CreateObject("scripting.dictionary")
Set dd = CreateObject("scripting.dictionary")
Set dc = CreateObject("scripting.dictionary")
For i = 2 To UBound(arr)
s = arr(i, 3)
dc(s) = dc(s) + arr(i, 2)
If Not d.exists(s) Then
d(s) = i
dd(s) = 1
Else
x = d(s)
If arr(x, 2) <> arr(i, 2) Then
dd(s) = dd(s) + 1
End If
End If
Next
d.RemoveAll
For i = 2 To UBound(arr)
s = arr(i, 3)
If Not d.exists(s) Then
d(s) = i
arr(i, 7) = arr(i, 2) * arr(i, 4)
Else
x = d(s)
If dd(s) > 1 Then
arr(x, 7) = dc(s)
End If
arr(i, 7) = 0
End If
Next
[g2:g20000].ClearContents
[c2].NumberFormatLocal = "@"
[a1].Resize(UBound(arr), UBound(arr, 2)) = arr
End Sub
|
|