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