Đánh dấu các giá trị trùng nhau bằng màu khác nhau bằng VBA trong Excel

Rate this post

(Thủ thuật đánh dấu các giá trị trùng nhau bằng VBA trong Excel) Trong Excel, khi làm việc tính toán, thống thì việc gặp những con số trùng nhau trong 1 vùng hay trong 1 sheet là chuyện thường xuyên. Khi đó, nhằm tiện cho việc theo dõi thì người sử dụng thường đánh dấu các giá trị trùng nhau này theo cách riêng của mình. Cách thông thường được mọi người sử dụng là sử dụng Conditional Formatting để tìm và định dạng các giá trị trùng nhau. Tuy nhiên, cách làm chỉ cho phép người sử dụng dùng được 1 màu duy nhất để phân biệt các giá trị trùng nhau. Như vậy thì việc sử dụng Conditional Formatting cũng không thực sự giúp người sử dụng dễ theo dõi trong 1 vùng có nhiều giá trị giống nhau. Vấn đề đặt ra là có cách nào để thể hiện mỗi giá trị trùng nhau là một màu riêng biệt?

Danh dau cac gia tri trung nhau bang mau khac nhau bang vba trong excel

Blog tin học hôm nay sẽ giới thiệu với các bạn cách viết hàm bằng VBA để đánh dấu các giá trị trùng nhau bằng những màu khác nhau. Sau đây là các bước thực hiện:

  • B1: Khởi động Microsoft Excel.
  • B2: Bắt đầu Visual Basic Editor với ALT + F11.
  • B3: Trong Menu Insert chọn Module.

Danh dau cac gia tri trung nhau bang mau khac nhau bang vba trong excel

  • B4: Copy toàn bộ đoạn mã sau
Sub Highlight_Duplicate()
Dim ws As Worksheet
Dim cell As Range
Dim myrng As Range
Dim clr As Long
Dim lastcell As Range
Dim i As Long
Dim lastrow As Long

Set ws = ThisWorkbook.ActiveSheet

‘Vung can danh dau gia tri trung nhau
Set myrng = ws.Range(“C4:F” & Range(“C” & ws.Rows.Count).End(xlUp).Row)

With myrng
Set lastcell = .Cells(.Cells.Count)
End With

myrng.Interior.ColorIndex = xlNone
clr = 3

For Each cell In myrng
‘Kiem tra so gia tri trung nhau trong vung, neu co hai gia tri trung nhau tro len thi thuc hien
If Application.WorksheetFunction.CountIf(myrng, cell) > 1 Then
‘Neu la o dau tien cua cac gia tri trung nhau trong vung
If myrng.Find(what:=cell, lookat:=xlWhole, MatchCase:=False, after:=lastcell).Address = cell.Address Then
‘Thiet lap mau
cell.Interior.ColorIndex = clr
clr = clr + 1
i = i + 1
Else
‘Thiet lap mau tu o thu 2 voi cac gia tri trung nhau
cell.Interior.ColorIndex = myrng.Find(what:=cell, lookat:=xlWhole, MatchCase:=False, after:=lastcell).Interior.ColorIndex
End If
End If
Next

‘Lay dong cuoi cung cua vung du lieu
lastrow = Cells(Rows.Count, “A”).End(xlUp).Row
Range(“A” & lastrow + 2).Value = “Tong so co ” & i & ” gia tri trung nhau”
End Sub

Các bạn lưu ý, đoạn mã code trên sử dụng vùng cần đánh dấu từ cột C: F. Tùy vào dữ liệu thực tế mà các bạn thay đổi vùng đánh dấu trong đoạn mã trên nhé!

  • B5: Chạy Macro có tên Highlight_Duplicate.

Trên đây là thủ thuật văn phòng sử dụng VBA để đánh dấu các giá trị trùng nhau bằng các màu khác nhau trong Excel. Bạn có thể tham khảo thêm các bài viết về  thủ thuật Office của Cuuhotinhoc.com.

Đánh dấu các giá trị trùng nhau bằng màu khác nhau bằng VBA trong Excel

5 (100%) 1 vote