|
本帖最后由 zjdh 于 2012-12-27 16:03 编辑
Sub HZ()
Application.ScreenUpdating = False '关闭屏幕刷新
Range("A2:I65536").ClearContents '清除记录
ARR = Range("A1:I500") '设置数组
M = 1 '预设指针
Dirs = Dir(ThisWorkbook.Path & "\*.xls") '在同一目录中提取一个文件xls名
While Dirs <> "" '直到提取完毕
If Dirs <> ThisWorkbook.Name Then '若文件不是本文件
myDatePath = ThisWorkbook.Path & "\" & Dirs '设置路径及文件名称
Set WB = GetObject(myDatePath) '打开文件
BRR = WB.Sheets(1).UsedRange '提取该文件表一的所有内容
For J = 2 To UBound(BRR) '对提取的内容逐行循环
For I = 2 To UBound(ARR) '对汇总数据内容逐行循环
If BRR(J, 2) = ARR(I, 2) Then '若名称一致
For K = 3 To 9 '逐项相加
ARR(I, K) = ARR(I, K) + BRR(J, K)
Next
Exit For
End If
Next
If I > 500 Then '若汇总数据中没有
M = M + 1 '修正指针
ARR(M, 1) = M - 1 '记录序号
For K = 2 To 9 '逐项记录
ARR(M, K) = BRR(J, K)
Next
End If
Next
WB.Close False '关闭文件
End If
Dirs = Dir '提取下一个文件名称
Wend
Application.ScreenUpdating = True '开启屏幕刷新
Range("A1").Resize(M, 9) = ARR '将数据输入到汇总表
MsgBox "汇总完毕!"
End Sub
|
|