excel - 将一张 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 颜色的差异。
解决方案
推荐阅读
- python - 导入后找不到模块
- c++ - “and_eq”和“&=”有什么区别?
- java - 使用 zipkin 跟踪信息监控应用程序业务逻辑
- amazon-web-services - 使用模板向 aws lambda 事件添加参数
- javascript - 在 JavaScript 画布中连续绘制矩形会在几秒钟后减慢程序的速度
- c++ - 编写 OpenMP 部分的方式之间有什么区别?
- java - 如何使用 http 状态码 Spring Retryable
- bash - 定义 IFS 的地方
- javascript - 我应该避免在模块中使用顶级变量吗?
- angularjs - angularjs chartjs 图例未定义