|
Sub 汇总2()
Dim arr, j, l, brr(1 To 1000, 1 To 7)
ar = Array(2, 4, 21, 22, 23, 24)
Application.ScreenUpdating = False
Set d = CreateObject("scripting.dictionary")
t = Timer
With Sheets("结构明细表")
r = .[f65536].End(3).Row
arr = .Range("a1:ac" & r)
For i = 3 To UBound(arr)
For ii = 0 To UBound(ar)
j = ar(ii)
If .Cells(i, j) <> "" Then
l = IIf(j = 2, 1, IIf(j = 4, 2, 3))
If .Cells(i, j).Interior.ColorIndex <> -4142 Then '-4142表示无色
l2 = 14 'N列(总重)
d.RemoveAll
Else
l2 = j + 4
End If
If Not d.exists(arr(i, j)) Then
n = n + 1
d(arr(i, j)) = n
brr(n, l) = arr(i, j)
brr(n, 5) = Round(arr(i, l2) / 1000, 2)
brr(n, 6) = arr(i, 29)
brr(n, 7) = arr(i, 16)
Else
m = d(arr(i, j))
brr(m, 5) = brr(m, 5) + Round(arr(i, l2) / 1000, 2)
End If
End If
Next ii
Next i
End With
With Sheets("构件材料分析表")
.Rows("23:100").ClearContents
.[a23].Resize(n, 7) = brr
End With
MsgBox Format(Timer - t, "0.00秒")
Application.ScreenUpdating = True
End Sub
|
|