使用VBA将行复制到Excel中的另一个工作表

首先,我从来没有使用过VBA(或者VB),所以记住这一点。 我正在尝试将行复制到我的工作簿中的另一个工作表。 因此,无论何时第2行中的任何更改将发生在sheet1中,该行都应该​​复制到sheet2上的第2行。 如果在Sheet1中修改第3行,则应在Sheet2上修改第5行。 我希望在sheet2上的每一行之间有一个空行。 我将尝试使用VBA创build一个新的表格放置在这个空行内。 无论如何,我在我的Selection.Paste行上出现错误。 我对VBA的知识(一个小时的价值)非常有限,所以我可能完全不在自己想做的事情上。

Private Sub Worksheet_Change(ByVal Target As Range) 'Do not worry about column headers If Target.Row = 1 Then Exit Sub 'On Error GoTo ErrHandler Application.EnableEvents = False 'This might be necessary? Sheet1.Rows(Target.Row).Select Selection.Copy Sheet1.Rows(Target.Row).Copy If Target.Row = 2 Then Sheet2.Rows(Target.Row).Select Selection.Paste Else Sheet2.Select Sheet2.Rows(Target.Row + Target.Row - 1).Select Selection.Paste End If ErrHandler: Application.EnableEvents = True 'This might be necessary? End Sub 

编辑:改变Selection.PasteActiveSheet.Paste ,它现在正在工作。

编辑:增加处理多区域select

 Private Sub Worksheet_Change(ByVal Target As Range) Dim a As Range, rw As Range For Each a In Selection.Areas For Each rw In a.Rows If rw.Row >= 2 Then rw.EntireRow.Copy Sheet2.Cells(2 + (rw.Row - 2) * 3, 1) End If Next rw Next a End Sub