请高手为下面的excel VBA代码编写注释 请将注释写的尽量详细些,谢谢

Public m&
Sub lqxs()
Dim Arr, i&, Brr(1 To 27, 1 To 23), rq, nl
Sheet1.Activate
[c5:z32].ClearContents
Myr = Sheet2.[a65536].End(xlUp).Row
Arr = Sheet2.Range("a7:t" & Myr)
For i = 1 To UBound(Arr)
rq = DateSerial(Left(Arr(i, 7), 4), Mid(Arr(i, 7), 5, 2), Right(Arr(i, 7), 2))
nl = DateDiff("yyyy", rq, Now)
Call jd(Arr(i, 13))
Brr(1, nl + 1) = Brr(1, nl + 1) + 1
Brr(m, nl + 1) = Brr(m, nl + 1) + 1
Next
[d5].Resize(27, 23) = Brr
[c5].Formula = "=sum(rc[1]:rc[23])"
[c5].AutoFill [c5].Resize(27, 1)
[d6].Formula = "=sum(r[1]c:r[4]c)"
[d6].AutoFill [d6].Resize(1, 23)
End Sub

Public m& '定义公共变量m
Sub lqxs()
Dim Arr, i&, Brr(1 To 27, 1 To 23), rq, nl '定义上述几个变量,Brr为27行23列的二维数组
Sheet1.Activate '使sheet1为当前活动的sheet
[c5:z32].ClearContents '清除C5到Z32单元格内的数据
Myr = Sheet2.[a65536].End(xlUp).row '将Sheet2中A列有数据的区域的行数,赋值给Myr变量
Arr = Sheet2.Range("a7:t" & Myr) '将A7到T列Myr行的区域命名为Arr
For i = 1 To UBound(Arr) '循环
rq = DateSerial(Left(Arr(i, 7), 4), Mid(Arr(i, 7), 5, 2), Right(Arr(i, 7), 2)) '将Sheet2中G列中的数据变为日期格式,如:2013/12/12
nl = DateDiff("yyyy", rq, Now) '判断Sheet2中G列数据日期的年份是否和今年相同,相同传回0,不相同传回1
Call jd(Arr(i, 13)) '调用jd()函数
Brr(1, nl + 1) = Brr(1, nl + 1) + 1 '数组Brr(1, nl + 1) 的值加一
Brr(m, nl + 1) = Brr(m, nl + 1) + 1 '数组Brr(1, nl + 1) 的值加一
Next
[d5].Resize(27, 23) = Brr '将数组的值赋值给D5单元格开始,到下面26行右面22列
[c5].Formula = "=sum(rc[1]:rc[23])" '给C5单元格添加公式, C5=D5+E5+F5++AB5
[c5].AutoFill [c5].Resize(27, 1) '格式填充 将C5的格式填充到C31单元格
[d6].Formula = "=sum(r[1]c:r[4]c)" '给D6单元格添加公式,D6=D7+D8+D9+D10
[d6].AutoFill [d6].Resize(1, 23) '格式填充,将D6的格式填充到AB31单元格
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-21
Sub lqxs()
Dim Arr, i&, Brr(1 To 27, 1 To 23), rq, nl
'激活工作表1,并清空C5:Z32中的数据。
Sheet1.Activate
[c5:z32].ClearContents
'求出表2A列最后一个可用单元格的行标,并以此来定义数组。
Myr = Sheet2.[a65536].End(xlUp).Row
Arr = Sheet2.Range("a7:t" & Myr)
For i = 1 To UBound(Arr)
'截取sheet2的H列,即第八列的数据作为日期变量。
rq = DateSerial(Left(Arr(i, 7), 4), Mid(Arr(i, 7), 5, 2), Right(Arr(i, 7), 2))
'把日期变量和当前时间进行比较
nl = DateDiff("yyyy", rq, Now)
'调用函数。由于不给出,飘过
Call jd(Arr(i, 13))
'根据变量数据逐次增加
Brr(1, nl + 1) = Brr(1, nl + 1) + 1
Brr(m, nl + 1) = Brr(m, nl + 1) + 1
Next
'把变量赋值,粘贴到D5
[d5].Resize(27, 23) = Brr
'对C5进行公式求和
[c5].Formula = "=sum(rc[1]:rc[23])"
'C5自动填充
[c5].AutoFill [c5].Resize(27, 1)
'同上,掠过。
[d6].Formula = "=sum(r[1]c:r[4]c)"
[d6].AutoFill [d6].Resize(1, 23)
End Sub本回答被网友采纳