本帖最后由 295672500 于 2020-11-27 14:11 编辑
- Sub 合并()
- ThisWorkbook.Save
- t = Timer
- Dim a As Byte, arr2(1 To 300, 1 To 7)
- b = Sheets("汇总").Cells(Rows.Count, 2).End(xlUp).Row
- If b - 2 <> 0 Then
- Sheets("汇总").[b3].Resize(b - 2, 7).ClearContents
- End If
- arr = [{"高线", "棒线", "机加"}]
- For Each w In arr
- a = Sheets(w).Cells(Rows.Count, 2).End(xlUp).Row
- arr1 = Sheets(w).Range("b3:h" & a)
- For i = 1 To a - 2
- For j = 1 To UBound(arr2)
- If "'" & arr1(i, 1) = arr2(j, 1) Then
- arr2(j, 3) = arr2(j, 3) & arr1(i, 3)
- arr2(j, 4) = arr2(j, 4) + arr1(i, 4)
- arr2(j, 5) = arr2(j, 5) & arr1(i, 5)
- arr2(j, 6) = arr2(j, 6) + arr1(i, 6)
- arr2(j, 7) = arr2(j, 7) + arr1(i, 7)
- GoTo 100
- End If
- Next j
- k = k + 1
- arr2(k, 1) = "'" & arr1(i, 1)
- arr2(k, 2) = arr1(i, 2)
- arr2(k, 3) = arr1(i, 3)
- arr2(k, 4) = arr1(i, 4)
- arr2(k, 5) = arr1(i, 5)
- arr2(k, 6) = arr1(i, 6)
- arr2(k, 7) = arr1(i, 7)
- 100:
- Next
- Sheets("汇总").[b3].Resize(k, 7) = arr2
- Next
- MsgBox Format(Timer - t, "0.0000")
- End Sub
复制代码
|