比较两个工作表并突出差异

Compare Two Worksheets and Highlight Difference

我有两个作品sheet包含相同的数据点。我需要将 Sheet1(有效数据)与 Sheet2 进行比较,并通过将单元格颜色更改为红色来查看 Sheet2 上发生的更改。我尝试了这个宏,但它绘制了所有内容,而不仅仅是不同的单元格。下面的图片显示了一小部分数据,实际上每件作品大约有 3K 行sheet Image1 Image2

这是我尝试过的语法(由于几乎所有内容都突出显示,所以没有用)

Dim mycell As Range
Dim mydiff As Integer
Dim shtSheet1 As String
Dim shtSheet2 As String

shtSheet2 = "Sheet2"
shtSheet1 = "Sheet1"

For Each mycell In ActiveWorkbook.Worksheets(shtSheet2).UsedRange
  If Not mycell.Value = ActiveWorkbook.WOrksheets(shtSheet1).Cells(mycell.Row, mycell.Column).Value Then
    mycell.Interior.Color = vbRed
    mydiffs = mydiffs+1
  End If
Next

编辑
下面的建议仍然产生不准确的结果,所以我 copied/pasted 将一些值输入记事本进行比较,我发现其中一个 sheet 在值后有一些随机空格,这将导致从 Sheet1 到 Sheet2 的数据永不相同。

VBA 是否有可以添加的 TRIM() feature/function 以便数据末尾的随机空格在比较中无关紧要?

尝试以下

Sub checked()
    Dim mycell As Range
    Dim mydiff As Integer
    Dim shtSheet1 As Worksheet
    Dim shtSheet2 As Worksheet
    Set shtSheet1 = Worksheets("Sheet1")
    Set shtSheet2 = Worksheets("Sheet2")
    For Each mycell In shtSheet2.UsedRange
      If Not mycell.Value = shtSheet1.Cells(mycell.Row, mycell.Column).Value Then
        mycell.Interior.Color = vbRed
        mydiffs = mydiffs + 1
      End If
    Next
End Sub

您的答案似乎已在此处提供: Find the differences between 2 Excel worksheets? Compare_excel 或其他一些外部 Excel diff 就是您要找的东西。

如果您的列数较少,您可能想在其中一张工作表的另一列中尝试类似“=Sheet1!A1=Sheet2!A1”的内容。然后,您可以过滤 FALSE 条目。

为什么不试试 Sheet2 中的条件格式?公式可以是

=A1<>Sheet1!A1

并在格式下将填充颜色设置为红色。