|
|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
'前面可能理解错误,若不是就请试试这个
Sub test()
Dim d, Arr(), Brr, Crr, Drr, ws As Worksheet, r&, c%, st$, m%, n%
Set d = CreateObject("scripting.dictionary")
With Worksheets("總表")
.[a1].CurrentRegion.Offset(2, 2).Resize(, 4) = ""
Crr = .Range("a3:f" & .Cells(Rows.Count, 1).End(xlUp).Row)
End With
For Each ws In Worksheets
If ws.Name <> "總表" Then
With ws
Brr = .Range("a3:f" & .Cells(Rows.Count, 1).End(xlUp).Row)
End With
For r = 1 To UBound(Brr)
st = Brr(r, 1) & Brr(r, 2)
If st <> "" Then
If d.exists(st) Then
m = d(st)
For c = 3 To 6
Arr(c, m) = Arr(c, m) + Brr(r, c)
Next
Else
n = n + 1
d(st) = n
ReDim Preserve Arr(1 To 6, 1 To n)
For c = 1 To 6
Arr(c, n) = Brr(r, c)
Next
End If
End If
Next
End If
Next
d.RemoveAll
Drr = Application.Transpose(Arr)
For r = 1 To UBound(Drr)
d(Drr(r, 1) & Drr(r, 2)) = r
Next
For r = 1 To UBound(Crr)
n = d(Crr(r, 1) & Crr(r, 2))
For c = 3 To 6
Crr(r, c) = Drr(n, c)
Next
Next
Worksheets("總表").[a3].Resize(UBound(Crr), UBound(Crr, 2)) = Crr
Set d = Nothing
End Sub
|
评分
-
1
查看全部评分
-
|