首页 > 解决方案 > 将一张 excel 表格中的两列与另一张表格中的其他 2 列进行比较并突出显示差异

问题描述

让我对这个问题更加具体和清楚。我想要做的是......我想比较例如,第 1 列(C1)是水果。第 2 列 (C2) 是数量。

表 1:

  C1       C2  

Orange     324

Apple      108

Grape      24

Mango      30

表2:

C1        C2 

Apple      40   

Grape      90

Peach      24

现在,需要比较两张表,所有存在于 sheet1 但不在 sheet2 中的水果应涂成红色,所有存在于 sheet2 但不在 sheet1 中的水果应涂成红色。并且,保持 sheet1 不变,将 sheet1 与 sheet1 进行比较,如果 sheet1 中存在苹果,则如果 sheet2 中的苹果小于 sheet1,则数量应为黄色。如果 sheet2 中的数量大于 sheet 1,则数量应为绿色。依此类推..对于 sheet2 中的所有水果(column1)和数量(column2),以及 sheet1 中的所有水果(column1)和数量(column2)。

请帮我。谢谢你。

这是我尝试过的代码..

Sub checkrev2()  

With Sheets("Sheet1")  
Sh1LastRow = .Cells(Rows.Count, "C").End(xlUp).Row  
Set Sh1Range = .Range("E9:F" & Sh1LastRow)  
Set num1Range = .Range("F9:F" & Sh1LastRow)  
End With  
With Sheets("Sheet2")  
Sh2LastRow = .Cells(Rows.Count, "C").End(xlUp).Row  
Set Sh2Range = .Range("G14:H" & Sh2LastRow)  
Set num2Range = .Range("H14:H" & Sh2LastRow)  
End With  

'compare sheet 1 with sheet 2  
For Each Sh1Cell In Sh1Range  
Set c = Sh2Range.Find( _  
what:=Sh1Cell, LookIn:=xlValues)  
If c Is Nothing Then  
Sh1Cell.Interior.ColorIndex = 3  
Sh1Cell.Offset(0, 1).Interior.ColorIndex = 3  
Else  
If Sh1Cell.Offset(1, 0) > c.Offset(1, 0) Then  
Sh1Cell.Offset(0, 1).Interior.ColorIndex = 0  
End If  
End If  
Next Sh1Cell  

For Each Sh2Cell In Sh2Range  
Set f = Sh1Range.Find( _  
what:=Sh2Cell, LookIn:=xlValues)  
If f Is Nothing Then  
Sh2Cell.Interior.ColorIndex = 3  
Sh2Cell.Offset(0, 1).Interior.ColorIndex = 3  
Else  
If c.Offset(1, 0) = f.Offset(1, 0) Then  
c.Offset(0, 1).Interior.ColorIndex = 8  
End If  
End If  
Next Sh2Cell  
End Sub 

使用此代码,我可以完成问题的第一部分......也就是说,将 sheet1 中的列与 sheet2 中的列进行比较,并突出显示 RED 颜色的差异。

标签: excelvbamacos

解决方案


推荐阅读