Đối với những người làm công việc tính toán, thống kê thì việc phải thường xuyên làm việc với những con số trùng nhau trong 1 vùng, 1 sheet là chuyện thường xuyên gặp phải. Để tiện cho việc theo dõi, người sử dụng thường đánh dấu các giá trị trùng nhau này theo các riêng của mình. Nhưng cách thông thường mọi người thường sử dụng đó là sử dụng Conditional Formatting để tìm và định dạng các giá trị trùng nhau, nhưng với cách làm này người sử dụng chỉ có thể sử dụng được 1 màu duy nhất để phân biệt các giá trị trùng nhau. Với việc sử dụng Conditional Formatting, người sử dụng vẫn khó theo dõi trong 1 vùng có nhiều giá trị giống nhau do chỉ có 1 màu để phân biệt. Vậy có cách nào để có thể thể hiện mỗi giá trị trùng nhau là một màu riêng biệt không?

Hôm nay Kênh phần mềm việt sẽ giới thiệu với mọi người sử dụng VBA để đánh dấu các giá trị trùng nhau bằng những màu khác nhau.
- B1: Khởi động Microsoft Excel.
- B2: Nhấn ALT + F11 để bắt đầu Visual Basic Editor.
- B3: Vào Menu Inser\Module

- B4: Nhập toàn bộ đoạn mã sau vào
Trong ví dụ này, Kênh phần mềm đang để vùng cần đánh dấu từ cột C: F, các bạn có thể thay đổi địa chỉ của vùng này tùy vào dữ liệu thực tế.
- B5: Chạy Macro có tên Highlight_Duplicate

Hôm nay Kênh phần mềm việt sẽ giới thiệu với mọi người sử dụng VBA để đánh dấu các giá trị trùng nhau bằng những màu khác nhau.
- B1: Khởi động Microsoft Excel.
- B2: Nhấn ALT + F11 để bắt đầu Visual Basic Editor.
- B3: Vào Menu Inser\Module

- B4: Nhập toàn bộ đoạn mã sau vào
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
Trong ví dụ này, Kênh phần mềm đang để vùng cần đánh dấu từ cột C: F, các bạn có thể thay đổi địa chỉ của vùng này tùy vào dữ liệu thực tế.
- B5: Chạy Macro có tên Highlight_Duplicate
No comments:
Post a Comment
Có Nhận xét tại: