首先,我从未使用过 VBA(或 VB),所以请记住这一点。我正在尝试将一行复制到我的工作簿中的另一张纸上。因此,只要 sheet1 中第 2 行发生任何更改,则应将该行复制到 sheet2 的第 2 行中。如果在 sheet1 中修改了第 3 行,则应在 sheet2 上修改第 5 行。我希望 sheet2 上的每一行之间有一个空行。我将尝试使用 VBA 创建一个新表来放置在这个空行中。无论如何,我的 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.Paste
为后ActiveSheet.Paste
,它现在可以工作了。