我有两个包含相同数据点的工作表 . 我需要将Sheet1(有效数据)与Sheet2进行比较,并通过将单元格颜色更改为红色来查看Sheet2上的更改内容 . 我试过这个宏,但是它画了一切,而不仅仅是不同的细胞 . 下面是显示一小部分数据的图像,实际上每个工作表上大约有3K行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
EDIT
下面的建议仍然会产生不准确的结果,所以我将一些值复制/粘贴到记事本中进行比较,我发现一张表后面有一些随机空格,这将导致Sheet1到Sheet2的数据永远不会相同 .
VBA是否具有可以添加的TRIM()特征/功能,因此数据末尾的随机空间在比较中无关紧要?
3 回答
试试下面
为什么不在Sheet2中尝试条件格式?公式可能是
= A1 <> Sheet 1中!A1
并在格式下将填充颜色设置为红色 .
您的回答似乎在这里提供:Find the differences between 2 Excel worksheets? Compare_excel或其他一些外部Excel差异是您正在寻找的 .
如果您的列数较少,则可能需要在其中一个表的另一列中尝试类似“= Sheet1!A1 = Sheet2!A1”的内容 . 然后,您可以过滤FALSE条目 .