сравнить два столбца из одного листа Excel с другими 2 столбцами в другом листе и выделить различия - PullRequest
0 голосов
/ 05 декабря 2018

Позвольте мне быть более конкретным и ясным по этому вопросу.Все, что я хочу сделать, это ... Я хочу сравнить, например, скажем, столбец 1 (C1) это фрукты.столбец 2 (C2) - это количество.

Sheet1:

  C1       C2  

Orange     324

Apple      108

Grape      24

Mango      30

Sheet2:

C1        C2 

Apple      40   

Grape      90

Peach      24

Сейчас,Необходимо сравнить два листа. Все фрукты, которые присутствуют на листе 1, но не на листе 2, должны быть окрашены в красный цвет, а все фрукты, которые присутствуют на листе 2, но не на листе 1, должны быть окрашены в красный цвет.И, сохраняя лист1 как постоянный, лист 2 сравнивается с листом 1, и если яблоки присутствуют в листе 1, то, если яблоки в листе 2 меньше, чем лист1, то количество должно быть окрашено в желтый цвет.Если количество в листе 2 больше, чем в листе 1, то количество должно быть окрашено в зеленый цвет.и так далее ... для всех фруктов (столбец 1) и количества (столбец 2) в листе 2 со всеми фруктами (столбец 1) и количеством (столбец 2) в листе 1.

Пожалуйста, помогите мне.Спасибо.

Это код, который я пробовал ..

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 и выделением различий в КРАСНОМ цвете.

...