|
楼主 |
发表于 2017-4-11 17:08
|
显示全部楼层
126楼的代码也修改好了:
Sub lsc()
t = Timer
mypath = ThisWorkbook.Path & "\"
myname = Dir(mypath & "*.xls*")
Application.ScreenUpdating = False
crr = [a1].CurrentRegion
ReDim brr(1 To 3000, 1 To 5)
Do While myname <> ""
For k = 2 To UBound(crr)
If Split(myname, ".")(0) = Mid(crr(k, 1), 5, 2) And myname <> ThisWorkbook.Name Then
n = n + 1
Set sh = GetObject(mypath & myname).Sheets("Sheet1")
Arr = sh.[a1].CurrentRegion
Workbooks(myname).Close False
For i = 2 To UBound(Arr)
m = m + 1
For j = 1 To UBound(Arr, 2)
brr(m, j) = Arr(i, j)
Next
Next
End If
Next
myname = Dir
Loop
Set sh = Nothing
With ActiveSheet
.[f1:j3000].ClearContents
.[f1].Resize(1, UBound(Arr, 2)).Value = Arr
.[f2].Resize(m, UBound(brr, 2)).Value = brr
End With
Application.ScreenUpdating = True
MsgBox "汇总完成!汇总了:" & n & "个工作表;共有:" & m & "行数据 " & vbCr & "用时:" & Format(Timer - t, "0.00") & "秒", vbInformation
End Sub |
|