VBA-比较两张纸并将结果粘贴到新纸上

时间:2019-03-28 12:51:07

标签: excel vba

我有两张“ 2019 Project Detail”和“ 2019 Project Detail SOURCE”,结构相同,因为“ 2019 Project Detail SOURCE”是“ 2019 Project Detail”的副本。然后,我想检查一下这两张纸之间是否有任何区别。如果有人更改了“ 2019 Project Detail”表上的任何数字/任何内容。如果是这样,则突出显示它们,然后将已更改单元格的引用粘贴到第三页“结果”(即“ 2019 Project Detail!AD4”)上。

我有突出显示更改的代码,但是我不知道如何将更改粘贴到“结果”表上。

代码:

Sub CompareAndHighlightDifferences()

Dim w1 As Worksheet, w2 As Worksheet, w3 As Worksheet

Set w1 = Sheets("2019 Project Detail")
Set w2 = Sheets("2019 Project Detail SOURCE")
Set w3 = Sheets("Results")

With w1
    For Each cel In .UsedRange
        If cel.Value <> w2.Cells(cel.Row, cel.Column).Value Then cel.Interior.Color = vbBlue

    Next cel
End With

End Sub

能给我个建议吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

这段代码会将所有更改记录到w3:

Dim row As Long
row = 1

With w1
    For Each cel In .UsedRange
        If cel.Value <> w2.Cells(cel.row, cel.Column).Value Then
            cel.Interior.Color = vbBlue
            w3.Cells(row, 1) = cel.Address
            w3.Cells(row, 2) = cel.Value
            w3.Cells(row, 3) = w2.Cells(cel.row, cel.Column).Value
            row = row + 1
        End If
    Next cel
End With

答案 1 :(得分:1)

可能,其中一个选项将有助于比较更改。 选项1将在“结果”工作表的同一单元格中显示两个表的值。选项2可以列出不同单元格的名称。

Payment