|
原帖由 wxiaomaz 于 2011-5-25 23:26 发表
老师,可否把你给我写的这段代码注解一下?我是昨天看了您的帖子才开始学vb,不懂的很多,很需要帮助!谢谢!
sub aa()
application.screenupdating false
(关闭屏幕自动刷新)
sheet1.range("b6:g47")=""
(sheet ... - Sub aa() '子程序 aa()
- Application.ScreenUpdating = False '关闭屏幕刷新(可以提高运行速度)
- Sheet1.Range("b6:g47") = "" ' Sheet1的<单元格>区域("b6:g47")=空值
- arr = Sheet1.Range("a6:g47") 'arr= Sheet1的<单元格>区域("a6:g47")
- For i = 2 To Sheets.Count - 1 '设定变量范围为i=2到 表单集合的计数值-1
- With ActiveWorkbook.Sheets(Worksheets(i).Name).Activate '工作于 活动工作簿的<工作表>(<工作表>(i )的名称 )的激活
- x = Range("a56565").End(3).Row 'x=<单元格>区域("a56565" )的<末端>(3 )的行标
- For k = 1 To UBound(arr) '设定变量范围为k=1到<数组上限>(arr)
- For ii = 6 To x '设定变量范围为ii=6到x
- If arr(k, 1) = Cells(ii, 1) Then arr(k, i) = arr(k, i) + Cells(ii, 6) '如果 arr(k,1)=<单元格>坐标(ii,1) 则执行 arr(k,i)=arr(k,i)+<单元格>坐标(ii,6)
- If arr(k, 1) = Cells(ii, 1) Then arr(k, 6) = arr(k, 6) + Cells(ii, 7) '如果 arr(k,1)=<单元格>坐标(ii,1) 则执行 arr(k,6)=arr(k,6)+<单元格>坐标(ii,7)
- Next ii '下一个ii
- Next k '下一个k
- End With 'With语句结束
- Next i '下一个i
- With ActiveWorkbook.Sheets(Worksheets(5).Name).Activate '工作于 活动工作簿的<工作表>(<工作表>(5 )的名称 )的激活
- x = Range("a56565").End(3).Row 'x=<单元格>区域("a56565" )的<末端>(3 )的行标
- For k = 1 To UBound(arr) '设定变量范围为k=1到<数组上限>(arr)
- For ii = 6 To x '设定变量范围为ii=6到x
- If arr(k, 1) = Cells(ii, 1) Then arr(k, 5) = arr(k, 5) + Cells(ii, 4) '如果 arr(k,1)=<单元格>坐标(ii,1) 则执行 arr(k,5)=arr(k,5)+<单元格>坐标(ii,4)
- If arr(k, 1) = Cells(ii, 1) Then arr(k, 6) = arr(k, 6) + Cells(ii, 5) '如果 arr(k,1)=<单元格>坐标(ii,1) 则执行 arr(k,6)=arr(k,6)+<单元格>坐标(ii,5)
- Next ii '下一个ii
- Next k '下一个k
- End With 'With语句结束
- Sheet1.Select ' Sheet1的选定
- Sheet1.[a6].Resize(UBound(arr), 6) = arr ' Sheet1的[a6]的<重调大小>(<数组上限>(arr),6)=arr
- Application.ScreenUpdating = True '开启屏幕刷新
- End Sub '子程序结束
复制代码 |
|