zPeterPan
Thành viên hoạt động
- Tham gia
- 27/2/21
- Bài viết
- 154
- Được thích
- 10
Em chào tất cả thầy cô và anh chị em trên diễn đàn,
File này của em ngày trước đã được bạn @snow25 trợ giúp code để so sánh dữ liệu và tô màu.
Code chỉ đúng khi dữ liệu ngày tháng năm trong cột A của sheets"Data" liền nhau. Nhờ mọi người sửa đoạn code giúp em với ạ ( vì em không chuyên về viết code ạ ), em mò mẫm hơn 1 ngày rồi mà chưa ra được vấn đề nên em mới lập thêm bài viết mới để nhờ mọi người giúp đỡ ạ. Do số liệu trong file nhiều nên dung lượng file lớn nên em ví dụ minh hoạ vài dòng ạ.
Em có bảng dữ liệu như này:
và kết quả em mong muốn như này ạ:
Cột ngày 02/09/2021 của Sheet2 sẽ so sánh với dòng ngày 09/09/2021 của Sheet1 nếu có số 9487 thì sẽ tô màu đỏ
Cột ngày 09/09/2021 của Sheet2 sẽ so sánh với dòng ngày 16/09/2021 của Sheet1 nếu có số 9384 thì sẽ tô màu đỏ
Cột ngày 16/09/2021 của Sheet2 sẽ so sánh với dòng ngày 23/09/2021 của Sheet1 nếu có số 9184 thì sẽ tô màu đỏ
Cột ngày 23/09/2021 của Sheet2 sẽ so sánh với dòng ngày 30/09/2021 của Sheet1 nếu có số 9183 thì sẽ tô màu đỏ
Cột ngày 30/09/2021 của Sheet2 sẽ so sánh với dòng ngày 07/10/2021 của Sheet1 nếu có số 9762 thì sẽ tô màu đỏ
Cột ngày 07/10/2021 của Sheet2 sẽ so sánh với dòng ngày 14/10/2021 của Sheet1 nếu có số 2890 thì sẽ tô màu đỏ
Cột ngày 14/10/2021 của Sheet2 sẽ so sánh với dòng ngày 15/10/2021 của Sheet1 nếu có số 2375 thì sẽ tô màu đỏ
và đây là code trong file ạ:
Kính mong mọi người sửa code giúp em với ạ. Em xin cảm ơn ạ.
File này của em ngày trước đã được bạn @snow25 trợ giúp code để so sánh dữ liệu và tô màu.
Code chỉ đúng khi dữ liệu ngày tháng năm trong cột A của sheets"Data" liền nhau. Nhờ mọi người sửa đoạn code giúp em với ạ ( vì em không chuyên về viết code ạ ), em mò mẫm hơn 1 ngày rồi mà chưa ra được vấn đề nên em mới lập thêm bài viết mới để nhờ mọi người giúp đỡ ạ. Do số liệu trong file nhiều nên dung lượng file lớn nên em ví dụ minh hoạ vài dòng ạ.
Em có bảng dữ liệu như này:
và kết quả em mong muốn như này ạ:
Cột ngày 02/09/2021 của Sheet2 sẽ so sánh với dòng ngày 09/09/2021 của Sheet1 nếu có số 9487 thì sẽ tô màu đỏ
Cột ngày 09/09/2021 của Sheet2 sẽ so sánh với dòng ngày 16/09/2021 của Sheet1 nếu có số 9384 thì sẽ tô màu đỏ
Cột ngày 16/09/2021 của Sheet2 sẽ so sánh với dòng ngày 23/09/2021 của Sheet1 nếu có số 9184 thì sẽ tô màu đỏ
Cột ngày 23/09/2021 của Sheet2 sẽ so sánh với dòng ngày 30/09/2021 của Sheet1 nếu có số 9183 thì sẽ tô màu đỏ
Cột ngày 30/09/2021 của Sheet2 sẽ so sánh với dòng ngày 07/10/2021 của Sheet1 nếu có số 9762 thì sẽ tô màu đỏ
Cột ngày 07/10/2021 của Sheet2 sẽ so sánh với dòng ngày 14/10/2021 của Sheet1 nếu có số 2890 thì sẽ tô màu đỏ
Cột ngày 14/10/2021 của Sheet2 sẽ so sánh với dòng ngày 15/10/2021 của Sheet1 nếu có số 2375 thì sẽ tô màu đỏ
và đây là code trong file ạ:
Mã:
Sub SoSanh()
Application.ScreenUpdating = False
Dim i As Long, Lr As Long, arr, j As Long, dic As Object, t, dk As String, a As Long, Lc As Long
Set dic = CreateObject("scripting.dictionary")
With Sheet1
Lr = .Range("A" & Rows.Count).End(xlUp).Row
arr = .Range("A2:B" & Lr).Value
For i = 1 To UBound(arr)
a = CLng(CDate(arr(i, 1)))
For Each t In Split(arr(i, 2), ",")
dk = a & "#" & t
dic.Item(dk) = i
Next
Next i
End With
With Sheet2
Lc = .Range("XFD2").End(xlToLeft).Column
Lr = .Range("A" & Rows.Count).End(xlUp).Row
.Cells(1, 1).Resize(Lr, Lc).Interior.ColorIndex = 0
arr = .Cells(1, 1).Resize(Lr, Lc).Value
For i = 2 To Lr
For j = 2 To Lc
a = CLng(CDate(arr(2, j)))
dk = a & "#" & arr(i, j)
If dic.exists(dk) Then
.Cells(i, j).Interior.ColorIndex = 3
End If
Next j
Next i
End With
Set dic = Nothing
Application.ScreenUpdating = True
End Sub
File đính kèm
Lần chỉnh sửa cuối: