macros在列L中find更改 – 如何复制下面的行

我写了下面的代码来识别列L中的更改并复制该行。

如何修改代码,以便复制该行以及其下方的20行?

Sub CopyRowsAtChangeInValue() Dim lRow As Long For lRow = Cells(Cells.Rows.Count, "L").End(xlUp).Row To 2 Step -1 If Cells(lRow, "L") <> Cells(lRow - 1, "L") Then Rows(CStr(lRow) & ":" & CStr(lRow)).Select Selection.Copy End If Next lRow End Sub 

只需要添加20行到最后一个行号。

 Sub CopyRowsAtChangeInValue() Dim lRow As Long For lRow = Cells(Cells.Rows.Count, "L").End(xlUp).Row To 2 Step -1 If Cells(lRow, "L") <> Cells(lRow - 1, "L") Then Rows(CStr(lRow) & ":" & CStr(lRow + 20)).Select Selection.Copy End If Next lRow End Sub 

您也可以最小化代码,通过复制行而不select。

 Rows(CStr(lRow) & ":" & CStr(lRow + 20)).Copy 

就这样…

 Sub CopyRowsAtChangeInValue() Dim lRow As Long For lRow = Cells(Cells.Rows.Count, "L").End(xlUp).Row To 2 Step -1 If Cells(lRow, "L") <> Cells(lRow - 1, "L") Then Rows(lRow & ":" & lRow + 20).Copy End If Next lRow End Sub