我对VBA比较陌生。我有这个子程序CutePaste,我在worksheet_change(ByVal Target As Range)中调用该子程序,只要更改“ F”列中的值,该子程序就会执行。我的目标是复制已更改的单元格的整行并将其粘贴到另一张纸上(“快速工作”)。现在,我的代码仅复制更新的单元格并将其粘贴到新工作表中。请告知我如何复制更新单元格的整行。
Sub CutPaste()
If Not Intersect(myTarget, Range("F:F")) Is Nothing Then
ActiveCell.Activate
a = Sheets("Cast Worked").Cells(Rows.Count, "A").End(xlUp).Row + 1
Sheets("Cast Worked").Range("A" & a).Value = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
End If
End Sub
答案 0 :(得分:0)
您很近。您可以使用Range.Copy方法来执行此操作。此外,您需要将目标从worksheet_change
事件传递到子例程。
Sub worksheet_change(ByVal Target As Range)
'Pass target range to subroutine
CutPaste(Target)
End Sub
Sub CutPaste(myTarget As Range)
If Not Intersect(myTarget, Range("F:F")) Is Nothing Then
a = Sheets("Cast Worked").Cells(Rows.Count, "A").End(xlUp).Row + 1
Target.EntireRow.Copy Destination:=Sheets("Cast Worked").Range("A" & a)
Target.Offset(1, 0).Select
End If
End Sub
我删除了ActiveCell.Activate
,因为将活动单元设置为活动是多余的。