请excel vba .高手注释一下以下代码,谢谢!!

Application.ScreenUpdating = False
r = Cells(Rows.Count, 2).End(3).Row
For Each Rng In Application.Intersect(ActiveSheet.UsedRange, Columns(2))
If Rng.Interior.ColorIndex = 3 Then
Range(Rng.Offset(1), Cells(r, 9)).Copy Rng
Exit For
End If
Next
For j = 2 To 9
Cells(r, j) = 0
Next j
ActiveSheet.UsedRange.Borders.LineStyle = xlContinuous
Application.ScreenUpdating = True

Application.ScreenUpdating = False '关闭屏幕刷新
    r = Cells(Rows.Count, 2).End(3).Row '定义第二列最后一个非空单元格行数为变量r
    For Each Rng In Application.Intersect(ActiveSheet.UsedRange, Columns(2))
    '单元格变量Rng在活动工作表中使用区域的第二列中循环
        If Rng.Interior.ColorIndex = 3 Then '如果Rng的颜色为红色
            Range(Rng.Offset(1), Cells(r, 9)).Copy Rng
             '复制Rng区域第一个单元格至r行第9列区域
            Exit For '退出循环
        End If
    Next
    For j = 2 To 9 '变量j从2循环至9
        Cells(r, j) = 0 'r行第2列为0,r行第3列为0...r行第9列为0
    Next j
    ActiveSheet.UsedRange.Borders.LineStyle = xlContinuous
     '设置活动工作表使用区域的边框为实线
    Application.ScreenUpdating = True '恢复屏幕刷新

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-11
Application.ScreenUpdating = False   '关闭屏幕刷新以提速
    r = Cells(Rows.Count, 2).End(3).Row   '取B列最后非空单元格行号
    For Each Rng In Application.Intersect(ActiveSheet.UsedRange, Columns(2))   '遍历B列已用单元格
        If Rng.Interior.ColorIndex = 3 Then   '若目标rng的底色为红色
            Range(Rng.Offset(1), Cells(r, 9)).Copy Rng   '将某区域复制到以目标rng为左上角为起始点的单元格。所说的某区域,是指以目标rng下面那格为左上角起始点,第9列第r行为右下角结束点的矩形区域。
            Exit For
        End If
    Next
    For j = 2 To 9   
        Cells(r, j) = 0   '将第2到9列第r行的格子填充0
    Next j
    ActiveSheet.UsedRange.Borders.LineStyle = xlContinuous
    Application.ScreenUpdating = True

相似回答