excel宏代码解释,看不懂,不能灵活运用

Sub 矩形1_单击()

With Sheets(1)
.Range("b1:g1").Copy Cells(1, 1)
.Range("b2:g2").Copy Cells(2, 1)
n = 2
For i = 3 To .Range("a65536").End(xlUp).Row
ri = 0
For u = 2 To n
If .Cells(i, 2) & .Cells(i, 3) & .Cells(i, 4) = Cells(u, 1) & Cells(u, 2) & Cells(u, 3) Then

Cells(u, 4) = Val(Cells(u, 4)) + .Cells(i, 5)
Cells(u, 5) = Val(Cells(u, 5)) + .Cells(i, 6)
Cells(u, 6) = Val(Cells(u, 6)) + .Cells(i, 7)
ri = 1

Exit For
End If
Next
If ri = 0 Then .Range("b" & i & ":g" & i).Copy Cells(n + 1, 1): n = n + 1

Next
End With
End Sub

第一行,知识点在With 语句,可以对某个对象执行一系列的语句,而不用重复指出对象的名称。这里的对象就是当前工作簿的第一个工作表。

第二行,将B1:G1单元格范围复制到A1:F1
第三行,将B2:G2单元格范围复制到A2:F2

第三行,给变量n赋值2

第四行,开始一个循环,i从3循环到a列的最后一个有数据的行数。

第五行,给变量ri赋值0

第六行,嵌套循环,u从2循环到n,当前n等于2

第七行,如果第i行的2、3、4列的数据串联到一起等于第U行的1、2、3列的数据串联起来,就执行下面的语句:
第八行:将第4列第u行的数据加上第5列第i行的数据赋值给的4列的u行。
第九行:将第5列第u行的数据加上第6列第i行的数据赋值给的5列的u行。
第十行:将第6列第u行的数据加上第7列第i行的数据赋值给的6列的u行。
第十一行,给ri赋值1.
第十二行,退出u循环。
第十三行,结束if语句。
第十四行,进行下一个u循环。
第十五行,如果ri=0 则bi:gi单元格的数据粘贴到a1:g(n+1),然后将n加上1.
第十六行,进行下一个i循环
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-09
With Sheets(1)
.Range("b1:g1").Copy Cells(1, 1) '将B1:G1的值复制,粘到A1单元格
.Range("b2:g2").Copy Cells(2, 1) '将B2:G2的值复制,粘到A2单元格

n = 2
For i = 3 To .Range("a65536").End(xlUp).Row '给I进行循环赋值,从3到A列最后一行的行数.比如A列如果有100行,就是从3到100
ri = 0
For u = 2 To n
If .Cells(i, 2) & .Cells(i, 3) & .Cells(i, 4) = Cells(u, 1) & Cells(u, 2) & Cells(u, 3) Then
'如果I=3时,单元格B3&C3&D3=A2&B2&C2(cells(x,y)表示X行Y列的值.Cells(i, 2),三行二列,Cells(i, 3),三行三列^),那么,
Cells(u, 4) = Val(Cells(u, 4)) + .Cells(i, 5) 'D2=D2的值+E3
Cells(u, 5) = Val(Cells(u, 5)) + .Cells(i, 6) 'E2=E2+F3
Cells(u, 6) = Val(Cells(u, 6)) + .Cells(i, 7) 'F2=F2+G3
ri = 1

Exit For
End If
Next
If ri = 0 Then .Range("b" & i & ":g" & i).Copy Cells(n + 1, 1): n = n + 1
'如果ri=0,将Bi:Gi的值复制到A(n+1)中,然后让N增加到3
Next '再循环,
End With
End Sub
第2个回答  2009-05-16
小组矩形1_单击( )

与单( 1 )
。范围( “ b1 : G1期” ) 。复制细胞( 1 , 1 )
。范围( “素B2 : G2期” ) 。复制细胞( 2 , 1 )
2例
我= 3 。范围( “ a65536 ” ) 。完( xlUp ) 。行
里= 0
进行U = 2到n
如果。细胞(一, 2 ) & 。细胞(一, 3 ) & 。细胞(一, 4 ) =细胞( ü , 1 )及细胞( ü , 2 )及细胞( ü , 3 )然后

细胞( ü , 4 ) =缬氨酸(细胞( ü , 4 ) ) + 。细胞(一, 5 )
细胞( ü , 5 ) =缬氨酸(细胞( ü , 5 ) ) + 。细胞(一, 6 )
细胞( ü , 6 ) =缬氨酸(细胞( ü , 6 ) ) + 。细胞(一, 7 )
里= 1

出口
为此,如果
下一个
如果里= 0然后。范围(有“ B ” & I和“ :克” & i )段。复制细胞(的N + 1 , 1 ) :无为N + 1

下一个
结束
完小组
相似回答