|
- Sub Macro1()
- Dim j As Integer
- Dim MyPath$, MyName$, wb As Workbook, sh As Worksheet, d As Object
- Set d = CreateObject("scripting.dictionary")
- Application.ScreenUpdating = False
- Application.DisplayAlerts = False
- Set wb = ThisWorkbook
- MyPath = ThisWorkbook.Path & "\汇总求教"
-
- MyName = Dir(MyPath & "*.xls")
-
- Do While MyName <> ""
- With GetObject(MyPath & MyName)
- For Each sh In .Sheets
-
- With sh
- j = .Range("A65536").End(xlUp).Row
- l = .Cells(1, Columns.Count).End(xlToLeft).Column
- arr = .Range(.Cells(1, 1), .Cells(j, l))
- For i = 2 To UBound(arr)
- For l = 2 To UBound(arr, 2)
- d(arr(i, 1) & arr(1, l)) = arr(i, l)
- Next
- Next
- With ThisWorkbook.Sheets(.Name)
- j = .Range("A65536").End(xlUp).Row
- l = .Cells(1, Columns.Count).End(xlToLeft).Column
- brr = .Range(.Cells(1, 1), .Cells(j, l))
- For i = 2 To UBound(brr)
- For k = 2 To UBound(brr, 2)
- d(brr(i, 1) & brr(1, k)) = d(brr(i, 1) & brr(1, k)) + brr(i, k)
- brr(i, k) = d(brr(i, 1) & brr(1, k))
- Next
- Next
-
- .[a1].Resize(UBound(brr), UBound(brr, 2)) = brr
-
- End With
- '
- End With
- Erase arr: Erase brr
- Next
-
- .Close False
- End With
- MyName = Dir
- Loop
- Sheets(1).Activate
- Application.ScreenUpdating = True
- MsgBox "ok"
- End Sub
复制代码 给你贴一小段程序,仅供参考,思路就是这样的,但不能用在本文件上!! |
|