首页 > 解决方案 > 如何将整行从工作表复制到另一个工作表

问题描述

我对 VBA 比较陌生。我有这个子过程 CutePaste,我在 worksheet_change(ByVal Target As Range) 中调用它,只要“F”列中的值发生更改,它就会执行。我的目标是复制更改的单元格的整行并将其粘贴到另一张表中(“Cast Worked”)。我的代码现在只复制更新的单元格并将其粘贴到新工作表中。请告知我如何复制更新单元格的整行。

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

标签: excelvba

解决方案


你很亲密。您可以使用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了,因为将活动单元格设置为活动是多余的。


推荐阅读