- 帖子
- 2839
- 主題
- 10
- 精華
- 0
- 積分
- 2895
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2025-2-15
|
15#
發表於 2016-10-10 13:39
| 只看該作者
回復 15# starbox520 - Sub TEST()
- Dim Arr, Brr, xD, Dn&, T$, N&, i&, j%
- Arr = Range([工作表1!A1], [工作表1!A1].Cells(Rows.Count, 1).End(xlUp)(1, 5))
- Set xD = CreateObject("Scripting.Dictionary")
- ReDim Brr(1 To UBound(Arr), 1 To 8)
- For i = 2 To UBound(Arr)
- T = Arr(i, 1) & "|" & Arr(i, 3) & "|" & Arr(i, 4)
- Dn = xD(T)
- If Dn = 0 Then
- N = N + 1: Dn = N: xD(T) = N
- For j = 1 To 3: Brr(Dn, j) = Arr(i, Array(1, 3, 4)(j - 1)): Next
- End If
- j = Int(InStr("---BK-VM-TR-PK-", "-" & Split(Arr(i, 2), "_")(1) & "-") / 3)
- If j > 0 Then
- Brr(Dn, j + 3) = Brr(Dn, j + 3) + Arr(i, 5)
- Brr(Dn, 8) = Brr(Dn, 8) + Arr(i, 5)
- End If
- Next i
- If N = 0 Then Exit Sub
- With Sheets("工作表3")
- .UsedRange.Offset(1, 0).Clear
- .[A2].Resize(N, 8) = Brr
- Application.Goto .[A1]
- End With
- End Sub
複製代碼
Xl0000164.rar (23.32 KB)
|
|