如何将整个行从工作表复制到另一个工作表

时间:2020-04-30 13:29:06

标签: excel vba

我对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

1 个答案:

答案 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,因为将活动单元设置为活动是多余的。

相关问题