Excel 用于捕获对单元格所做更改的VBA脚本

Excel 用于捕获对单元格所做更改的VBA脚本,excel,vba,Excel,Vba,在表1中,我有一个数据表(无公式),范围为A1:R53。如果我更新任何单元格,我希望复制整行并将新数据粘贴到Sheet2中 我不希望复制整个表,只希望更改了单元格的行和字体颜色为红色。这些行应粘贴到下一个可用行中,而不是覆盖以前的条目。将此事件宏放置在Sheet1工作表代码区域: Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range, N As Long Set rng = Range("A1:

在表1中,我有一个数据表(无公式),范围为A1:R53。如果我更新任何单元格,我希望复制整行并将新数据粘贴到Sheet2中


我不希望复制整个表,只希望更改了单元格的行和字体颜色为红色。这些行应粘贴到下一个可用行中,而不是覆盖以前的条目。

将此事件宏放置在Sheet1工作表代码区域:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, N As Long

    Set rng = Range("A1:R53")
    If Intersect(rng, Target) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub

    Target.Interior.ColorIndex = 27
    With Sheets("Sheet2")
        If .Cells(1, 1).Value = "" Then
            N = 1
        Else
            N = .Cells(Rows.Count, "A").End(xlUp).Row + 1
        End If
        Target.EntireRow.Copy .Cells(N, 1)
    End With
End Sub

调整颜色以满足您的需要。

纯代码编写请求与堆栈溢出无关——我们希望这里的问题与特定的编程问题相关——但我们很乐意帮助您自己编写!告诉我们,你被困在哪里了。这也将帮助我们更好地回答您的问题。非常感谢您的帮助@Gary的学生。您的代码运行得非常好。非常感谢您对Gary的学生的帮助。你的代码运行得很好。我很抱歉没有发布我的代码,因为您可以看到它正在将整个表复制到第2页,而不仅仅是每一行。Sub macro1()Sheets(“Sheet1”).UsedRange.copy Sheets(“Sheet2”).Range(“A60000”).End(xlUp).Offset(2,0).PasteSpecial Paste:=xlPasteValues@Gary'sStudent:我只是想知道,当我在一行中对不同的单元格进行更改时,是否可能不会多次复制每个更改?而是将多次更改的行复制到“表2”一次?希望这是有意义的。