比较一张excel工作表中的两列与另一张工作表中的其他两列,并突出显示差异

时间:2018-12-05 07:15:03

标签: vba excel-vba excel-vba-mac

让我更具体,更清楚地回答这个问题。我要做的就是... 例如,我想比较一下,列1(C1)是水果。第2列(C2)是数量。

第1张:

  C1       C2  

Orange     324

Apple      108

Grape      24

Mango      30

Sheet2:

C1        C2 

Apple      40   

Grape      90

Peach      24

现在,需要比较两张纸,工作表1中存在但不在工作表2中的所有水果都应被涂成红色,而工作表2中存在但不在工作表1中的所有水果应被涂成红色。 和, 保持sheet1不变, 将工作表2与工作表1进行比较,如果工作表1中存在苹果,那么,如果工作表2中的苹果少于工作表1中的苹果,则该数量应用黄色上色。 如果工作表2中的数量大于工作表1,则该数量应显示为绿色。以此类推..对于工作表2中的所有水果(第1列)和数量(第2列)以及工作表1中的所有水果(第1列)和数量(第2列)。

请帮助我。谢谢。

这是我尝试过的代码。

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中的列进行比较,并突出显示红色的差异。

0 个答案:

没有答案