Trong trường hợp người dùng không muốn tô màu xen kẽ mà chỉ muốn có màu khi click chuột trực tiếp, thì bạn có thể sử dụng code VBA. Với cách này bảng dữ liệu sẽ được nổi bật các giá trị theo hàng hoặc cột khi đối chiếu, bằng cách click chuột khi cần sử dụng mà thôi. Bài viết dưới đây sẽ hướng dẫn bạn đọc các trường hợp tô màu tự động trong Excel.
Video hướng dẫn tô màu cột và hàng trong Excel
1. Cách tô màu hàng Excel khi click chuột
Bước 1:Trong file Excel cần xử lý chúng ta nhấn vào tab Developer trên thanh Ribbon rồi chọn Visual Basic hoặc nhấn tổ hợp phím Alt + F11 để mở trình soạn thảo code VBA.

Hiển thị giao diện Microsoft Visual Basic for Applications, chúng ta click vào sheet hiện tại ở Project VBAProject để mở hộp thoại Sheet (Code).

Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next Cells.Interior.ColorIndex = 0 ActiveCell.EntireRow.Interior.ColorIndex = 8 Application.CutCopyMode = True End Sub

Quay lại giao diện bảng dữ liệu Excel khi chúng ta click chuột tại 1 ô thì hàng đó sẽ được tô màu như hình dưới đây. Các hàng tự động được tô màu khi bạn click chuột.

2. Cách tô màu cột Excel tự động
Bước 1:Chúng ta cũng nhấn tổ hợp phím Alt + F11 để mở trình soạn code VBA lên. Tại giao diện này bạn tiếp tục click đúp vào sheet hiện tại đang mở trong giao diện Project VBAProject. Nhập đoạn mã dưới đây vào giao diện VBA và cũng nhấn Alt + Q để tắt giao diện này.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next Cells.Interior.ColorIndex = 0 ActiveCell.EntireColumn.Interior.ColorIndex = 8 Application.CutCopyMode = True End Sub

Kết quả khi bạn click chuột vào bất kỳ 1 ô thì cả cột đó đều được tô màu như hình dưới đây.

3. Cách tô màu hàng và cột trong Excel
Khi bạn có yêu cầu tô màu cột hoặc hàng theo giá trị thì sẽ sử dụng 2 cách trên. Trong trường hợp phải đối chiếu so sánh dữ liệu thì chúng ta buộc phải tô màu cả ở hàng và cột.Bước 1:
Trong giao diện nhập mã code VBA, bạn cũng nhấn vào sheet đang làm việc rồi nhập đoạn mã code dưới đây.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next Cells.Interior.ColorIndex = 0 ActiveCell.EntireRow.Interior.ColorIndex = 8 ActiveCell.EntireColumn.Interior.ColorIndex = 8 Application.CutCopyMode = True End Sub
Hoặc dùng mã code bên dưới đây nếu mã code trên có vấn đề.Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 'Update 20140318 Static xRow Static xColumn If xColumn <> "" Then With Columns(xColumn).Interior .ColorIndex = xlNone End With With Rows(xRow).Interior .ColorIndex = xlNone End With End If pRow = Selection.Row pColumn = Selection.Column xRow = pRow xColumn = pColumn With Columns(pColumn).Interior .ColorIndex = 6 .Pattern = xlSolid End With With Rows(pRow).Interior .ColorIndex = 6 .Pattern = xlSolid End With End Sub

Sau khi đóng giao diện nhập mã VBA này, người dùng nhấn bất kỳ vào một ô và thấy cả cột và hàng đi qua ô đó đều được tô màu phân biệt với những ô còn lại.



Khi đó màu dòng trong Excel được chuyển sang màu khác.



Chúc các bạn thực hiện thành công!