|
本帖最后由 哥儿- 于 2022-10-5 20:51 编辑
- Option Explicit
- Sub 汇总()
- Dim vData, brr, i%, j%, vstr$, str$
- Dim d As Object, dic As Object
- Dim sh As Worksheet
- Set d = CreateObject("scripting.dictionary")
- Set dic = CreateObject("scripting.dictionary")
- Sheet1.[e4:dp100].ClearContents
- vData = Sheet1.[a2].CurrentRegion
- For i = 3 To UBound(vData)
- d(vData(i, 4)) = i
- Next
- For i = 5 To UBound(vData, 2)
- If vData(1, i) <> "" Then vstr = vData(1, i)
- dic(vstr & vData(2, i)) = i
- Next
- For Each sh In Sheets
- If sh.Name <> "汇总" Then
- brr = sh.UsedRange
- For i = 4 To UBound(brr)
- For j = 5 To UBound(brr, 2)
- If brr(2, j) <> "" Then str = brr(2, j)
- vData(d(brr(i, 4)), dic(str & brr(3, j))) = brr(i, j)
- Next
- Next
- End If
- Next
- [a2].Resize(UBound(vData), UBound(vData, 2)) = vData
- End Sub
复制代码 改了一下,分厂表格里面姓名重名说明文字删除之后再测试
|
|