让我更具体,更清楚地回答这个问题。我要做的就是... 例如,我想比较一下,列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中的列进行比较,并突出显示红色的差异。