Hỗ trợ cảnh báo trùng số liệu trong các ô excell

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

kaka2002

Thành viên mới
Tham gia
14/3/23
Bài viết
1
Được thích
0
12345;67543;45;98;0966;66
6756;4567;2223;900
900;1234;8888
9654;345;4567
ALo, Xin hỗ trợ trong excell làm thế nào để cảnh báo đánh số bị trùng trong các ô khác nhau ví dụ như trên
900 xuất hiện 2 lần bị trùng; 4567 xuất hiện 2 lần bị trùng; có thể hiện thành màu đỏ khi xuất hiện trùng để báo người đánh máy biết đc ko?
Xin cảm ơn
 
Giả sử vùng nhập liệu là A1:B100 (Bạn có thể sửa trong code theo vùng thực tế)
Các con số nhập liệu cách nhau bằng dấu chấm phẩy (;)
Mỗi khi thay đổi giá trị trong vùng này (nhập mới, sửa...) thì code sẽ tự động kiểm tra và đổi màu chữ từ đen sang đỏ cho các giá trị trùng.
Cách dùng: Chuột phải vào tên sheet, chọn View Code, dán code này vào
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&, j&, pos&, rng As Range, cell As Range, s, dic As Object, key
Set dic = CreateObject("Scripting.Dictionary")
Set rng = Range("A1:B100")
If Intersect(Target, Range("A1:B100")) Is Nothing Then Exit Sub
rng.Font.Color = vbBlack
For Each cell In rng
    If Not IsEmpty(cell) Then
        s = Split(cell, ";")
        For i = 0 To UBound(s)
            If Not dic.exists(s(i)) Then
                dic.Add s(i), cell.Address
            Else
                dic(s(i)) = dic(s(i)) & "|" & cell.Address
            End If
        Next
    End If
Next
For Each key In dic.keys
    s = Split(dic(key), "|")
    If UBound(s) > 0 Then
        For j = 0 To UBound(s)
            With Range(s(j))
                pos = InStr(1, ";" & .Value & ";", ";" & key & ";")
                .Characters(pos, Len(key)).Font.Color = vbRed
            End With
        Next
    End If
Next
End Sub
 

File đính kèm

  • Book1.xlsm
    17.3 KB · Đọc: 10
Web KT
Back
Top Bottom