arr=.Range("a2:b"&r)这一句呀,r是上面一句获取的最后一个行号,反正是个数值,这里假如r是100那么arr=.Range("a2:b"&r)就可以写成arr=.Range("a2:b100")意思就是把Range("a2:b100")把区域的数据放到一个叫arr的二维数据里面。--------------------------------------------------------brr(1,m)=arr(i,1):brr(2,m)=arr(i,2)这句中的冒号就是把本来要写在两行的代码写在一行的做法,等价于brr(1,m)=arr(i,1)brr(2,m)=arr(i,2)这样就好理解了哦,就是给brr数组赋值,赋的是arr的数据-----------------------------------------------------[a1].CurrentRegion.Offset(1).ClearContents这句分开理解,最主要的后面一个ClearContents就是清空内容的意思[a1].CurrentRegion.Offset(1)这一堆其实就定位要清空内容单元格的地址[a1].CurrentRegion是从A1开始和A1相连接的有数据的单元格区域offset是区域偏移用的,------------------------------------------------------------.[a2:b2].Resize(m)=Application.Transpose(brr)这句总体意思是把数组内容回写但单元格里面,.[a2:b2].Resize(m)中的resize是重新调整选区大小的意思,.[a2:b2].Resize(m)就是把[a2:b2]扩大M行,假如m是50,区域到时候就是A2:B51了,后面的Application.Transpose(brr)就是把brr数组转置的意思,就是把原来的行变成列,原来的列变成行------------------------------------------------大致就这样,这些都是很基础的东西,你要把书全看了,肯定就都明白了}