Sub yy() Application.ScreenUpdating = False Set aw = ThisWorkbook ar = aw.Sheets("汇总表").Range("d8:g28") Set d = CreateObject("scripting.dictionary") For i = 1 To UBound(ar) If Not d.exists(ar(i, 1)) Then d.Add ar(i, 1), i Next p = aw.Path & "\" f = Dir(p & "*.xls") Do While f <> "" If f <> ThisWorkbook.Name Then Set wk = GetObject(p & f) ar2 = wk.Sheets(1).Range("e9:f29") Set c = aw.Sheets("汇总表").Range("d7:g7").Find(Left(wk.Name, Len(wk.Name) - 4)) For i = 1 To UBound(ar2) If d.exists(ar2(i, 1)) Then ar(d(ar2(i, 1)), c.Column - 3) = ar2(i, 2) End If Next wk.Close False End If f = Dir Loop aw.Sheets("汇总表").Range("d8:g28") = ar Application.ScreenUpdating = True End Sub
Sub yy() Application.ScreenUpdating = False Set aw = ThisWorkbook ar = aw.Sheets("汇总表").Range("d8:g28") Set d = CreateObject("scripting.dictionary") For i = 1 To UBound(ar) If Not d.exists(ar(i, 1)) Then d.Add ar(i, 1), i Next p = aw.Path & "\" f = Dir(p & "*.xls") Do While f <> "" If f <> ThisWorkbook.Name Then Set wk = GetObject(p & f) ar2 = wk.Sheets(1).Range("e9:f29") Set c = aw.Sheets("汇总表").Range("d7:g7").Find(Left(wk.Name, Len(wk.Name) - 4)) For i = 1 To UBound(ar2) If d.exists(ar2(i, 1)) Then ar(d(ar2(i, 1)), c.Column - 3) = ar2(i, 2) End If Next wk.Close False End If f = Dir Loop aw.Sheets("汇总表").Range("d8:g28") = ar Application.ScreenUpdating = True End Sub