|
本帖最后由 liulang0808 于 2025-5-9 13:46 编辑
Sub 矩形1_Click()
Dim sm As Double
Set sh = Sheets("合并")
Set d = CreateObject("scripting.dictionary")
Application.ScreenUpdating = False
sh.UsedRange.Offset(2).ClearContents
arr = sh.[a1].Resize(9999, 10)
r = 2
crr = Array("供", "产", "销", 8, 6, 4)
For j = 0 To 2
Set Rng = Sheets(crr(j)).Rows(1).Find("小计", lookat:=xlWhole)
If Not Rng Is Nothing Then
c = Rng.Column
brr = Sheets(crr(j)).UsedRange
For i = 3 To UBound(brr)
If brr(i, 1) = "合计" Then Exit For
If Not d.exists(brr(i, 1)) Then
r = r + 1
d(brr(i, 1)) = r
arr(r, 1) = brr(i, 1)
For x = c To c + 2
arr(r, j * 3 + 2 + x - c) = brr(i, x)
Next x
Else
rx = d(brr(i, 1))
For x = c To c + 2
arr(rx, j * 3 + 2 + x - c) = brr(i, x)
Next x
End If
Next i
End If
Next j
arr(r + 1, 1) = "合计"
For j = 2 To UBound(arr, 2)
sm = 0
For i = 3 To r
sm = sm + arr(i, j)
Next i
arr(r + 1, j) = sm
Next j
sh.[a1].Resize(r + 1, 10) = arr
sh.[a3].Resize(r - 2).Sort Key1:=sh.[a17], Order1:=xlAscending
Application.ScreenUpdating = True
End Sub
|
|