以下为 excel vba汇总代码,谁能帮我注释!!

Sub °´Å¥54_Click()
P = ThisWorkbook.Path & "\Êý¾Ý\"
F = Dir(P & "*.*")
Set d = CreateObject("scripting.dictionary")
ReDim brr(1 To 10000, 1 To 12)
Application.ScreenUpdating = False
Do While F <> ""
Set wb = GetObject(P & F)
For Each sh In wb.Sheets
arr = sh.UsedRange
For i = 5 To UBound(arr)
If Not d.Exists(arr(i, 1)) Then
m = m + 1: d(arr(i, 1)) = m
For j = 1 To 12
brr(m, j) = arr(i, j)
Next
Else: j = 0
For j = 2 To 12
brr(d(arr(i, 1)), j) = brr(d(arr(i, 1)), j) + arr(i, j)
Next
End If
Next
Next
Workbooks(F).Close False
F = Dir
Loop
Range("a5").Resize(m - 1, 12) = brr
Application.ScreenUpdating = True
End Sub

第1个回答  推荐于2016-09-15
Sub 测试() ‘建立一个公共模块的的宏,宏名为“测试”
P = ThisWorkbook.Path & "\Êý¾Ý\" ’P=这个工作簿的地址及文件名
F = Dir(P & "*.*") ‘F=文件夹的地地址及任意格式文件
Set d = CreateObject("scripting.dictionary") ’设置一个工程
ReDim brr(1 To 10000, 1 To 12) ’定义一个二维数组brr(),1到10000行,1到12列
Application.ScreenUpdating = False ‘禁止屏幕更新
Do While F <> "" ’建立一个循环 ,如果F 不等于空白则循环
Set wb = GetObject(P & F) ‘设置 Wb为一个打开P地址及文件
For Each sh In wb.Sheets ' 建立遍历所有表单的循环
arr = sh.UsedRange ‘数组arr=这个表单的使用区域
For i = 5 To UBound(arr) ’建立一个从5到这个数组最后一个的循环
If Not d.Exists(arr(i, 1)) Then ‘建一个判断工程D的数组存在时则进行以下代码
m = m + 1: d(arr(i, 1)) = m ’实现数据第增
For j = 1 To 12 ‘建立一个从1到12的循环
brr(m, j) = arr(i, j) ’实现数据交换
Next ‘回归循环
Else: j = 0 ’执行不满上一条件时进行如下代码
For j = 2 To 12 ‘建立一个从2到12的循环
brr(d(arr(i, 1)), j) = brr(d(arr(i, 1)), j) + arr(i, j) ’实现数据第增
Next ‘回归循环
End If ‘结束判断
Next ‘回归循环
Next ‘回归循环
Workbooks(F).Close False 强行关闭名为F变量的文件
F = Dir ’直到遍历此文件夹的所有文件
Loop ‘回归循环
Range("a5").Resize(m - 1, 12) = brr '实现数组的值填写入表单
Application.ScreenUpdating = True ‘恢复屏幕更新
End Sub 结束整个程序本回答被提问者和网友采纳
相似回答