|
发表于 2016-8-18 05:43
|
显示全部楼层
本楼为最佳答案
- Sub Macro1()
- Dim arr, brr, d, i&, j%
- Set d = CreateObject("scripting.dictionary")
- ReDim brr(1 To 20000, 1 To 200)
- mypath = ThisWorkbook.Path & ""
- wj = Dir(mypath & "*.xls")
- Application.ScreenUpdating = False
- Do While wj <> ""
- If wj <> ThisWorkbook.Name Then
- s = s + 1
- With GetObject(mypath & wj)
- arr = .Sheets(1).Range("a1").CurrentRegion
- .Close 0
- End With
- lie = UBound(arr, 2)
- For i = 1 To UBound(arr)
- If Not d.exists(arr(i, 1)) Then
- n = n + 1
- d(arr(i, 1)) = n
- For j = 1 To 2
- brr(n, j) = arr(i, j)
- Next
- ss = s * (lie - 2) - 2
- For j = 3 To lie
- brr(n, ss + j) = arr(i, j)
- Next
- Else
- s2 = d(arr(i, 1))
- ss = s * (lie - 2) - 2
- For j = 3 To lie
- brr(s2, ss + j) = arr(i, j)
- Next
- End If
- Next
- End If
- wj = Dir
- Loop
- Range("a1").Resize(n, ss + j - 1) = brr
- Application.ScreenUpdating = True
- End Sub
复制代码 |
|