
Hiện nay mình đang dùng Conditional Formatting để so sánh giữa các cột
Ví dụ như cột A6 <> W6 thì đổi màu nay muốn code lộc qua sheet KQ
Các anh xem file dính kèm.
Sub tung()
Dim Rng As Range, Rng1 As Range, I As Long
Set Rng = Sheets("Check").Range("A6:A" & Sheets("Check").Range("A65000").End(xlUp).Row)
Set Rng1 = Sheets("Check").Range("W6:W" & Sheets("Check").Range("W65000").End(xlUp).Row)
Rng1.Interior.ColorIndex = xlNone
For I = 1 To Rng.Rows.Count
If Rng(I) <> Rng1(I) Then
Rng1(I).Interior.ColorIndex = 6
End If
Next
End Sub
Sub Copy()
Dim Sarr, Arr, i, k
With Sheets("Check")
Sarr = .Range(.[A6], .[A65000].End(3)).Resize(, 21).Value2
Arr = .Range(.[W6], .[W65000].End(3)).Resize(, 21).Value2
End With
For i = 1 To UBound(Sarr, 1)
If Sarr(i, 1) <> Arr(i, 1) Then
k = k + 1
For J = 1 To UBound(Sarr, 2)
Arr(k, J) = Sarr(i, J)
Next
End If
Next
With Sheets("KQ")
.[A5:U65000].ClearContents
.[A5].Resize(k, 21).Value = Arr
End With
End Sub
Rất đúng ý mình cám ơn bạn rất nhiều.Bạn thử xem sao nhéPHP:Sub tung() Dim Rng As Range, Rng1 As Range, I As Long Set Rng = Sheets("Check").Range("A6:A" & Sheets("Check").Range("A65000").End(xlUp).Row) Set Rng1 = Sheets("Check").Range("W6:W" & Sheets("Check").Range("W65000").End(xlUp).Row) Rng1.Interior.ColorIndex = xlNone For I = 1 To Rng.Rows.Count If Rng(I) <> Rng1(I) Then Rng1(I).Interior.ColorIndex = 6 End If Next End Sub
Nếu copy thì đùng code dưới nhé. Code trên là để tô màu khi khác nhau nhéPHP:Sub Copy() Dim Sarr, Arr, i, k With Sheets("Check") Sarr = .Range(.[A6], .[A65000].End(3)).Resize(, 21).Value2 Arr = .Range(.[W6], .[W65000].End(3)).Resize(, 21).Value2 End With For i = 1 To UBound(Sarr, 1) If Sarr(i, 1) <> Arr(i, 1) Then k = k + 1 For J = 1 To UBound(Sarr, 2) Arr(k, J) = Sarr(i, J) Next End If Next With Sheets("KQ") .[A5:U65000].ClearContents .[A5].Resize(k, 21).Value = Arr End With End Sub
Trường hợp này chỉ so sánh cột đầu tiên thôi nếu cột sau thay đổi thì không hiện raBạn thử xem sao nhéPHP:Sub tung() Dim Rng As Range, Rng1 As Range, I As Long Set Rng = Sheets("Check").Range("A6:A" & Sheets("Check").Range("A65000").End(xlUp).Row) Set Rng1 = Sheets("Check").Range("W6:W" & Sheets("Check").Range("W65000").End(xlUp).Row) Rng1.Interior.ColorIndex = xlNone For I = 1 To Rng.Rows.Count If Rng(I) <> Rng1(I) Then Rng1(I).Interior.ColorIndex = 6 End If Next End Sub
Nếu copy thì đùng code dưới nhé. Code trên là để tô màu khi khác nhau nhéPHP:Sub Copy() Dim Sarr, Arr, i, k With Sheets("Check") Sarr = .Range(.[A6], .[A65000].End(3)).Resize(, 21).Value2 Arr = .Range(.[W6], .[W65000].End(3)).Resize(, 21).Value2 End With For i = 1 To UBound(Sarr, 1) If Sarr(i, 1) <> Arr(i, 1) Or Sarr(i, 2) <> Arr(i, 2) Or Sarr(i, 3) <> Arr(i, 3) Then 'có tới 21 cột cho hàm OR thì rất dài bạn có thể viết ngắn được không. k = k + 1 For J = 1 To UBound(Sarr, 2) Arr(k, J) = Sarr(i, J) Next End If Next With Sheets("KQ") .[A5:U65000].ClearContents .[A5].Resize(k, 21).Value = Arr End With End Sub