Tự động tô màu dòng của ô được chọn trong bảng bằng VBA

Một ngày xấu trời nào đó bạn phải làm việc với 1 bảng tính hàng nghìn dòng, hàng chục cột và nó khiến bạn hoa mắt luôn. Ức chế nhất là bạn không biết vị trí bạn đang chọn là dòng nào dù excel có hỗ trợ bạn nhưng bạn muốn trực quan hơn, dễ nhìn hơn. Hãy để Học Excel Online giúp bạn một thủ thuật nhỏ để giải tỏa sự ức chế này nhé:

=> Ứng dụng VBA để tự động tô màu dòng của ô được chọn trong bảng.

Chúng ta cùng tìm hiểu thông qua ví dụ sau nhé:

Cho bảng tính:

Bước 1: Thực hiện ghi macro với thao tác tô màu nền tại vị trí bất kỳ đang chọn

  • Trong tab Developer > Chọn Record macro
  • Thực hiện tô màu cho dòng tại vị trí đang chọn
  • Tắt chức năng Record Macro sau khi hoàn thành thao tác
  • Mở cửa sổ VBA để kiểm tra kết quả câu lệnh

Đây là câu lệnh chúng ta thu được:

 

Ở đây các câu lệnh Select chúng ta không cần quan tâm, vì mục tiêu là việc tô màu vào vị trí chúng ta chọn, nên chúng ta có thể chỉ ra trong VBA rõ nội dung này.

Điều cần quan tâm là câu lệnh tô màu nền.

With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With

Bước 2: Tiếp theo chúng ta ghi lại Macro cho thao tác bỏ tô màu nền (No Fill)

Câu lệnh bỏ tô màu nền trong VBA thu được như sau:

With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With

Bước 3: Tạo sự kiện SelectionChange trong Worksheet

Trong cửa sổ VBA, click đúp vào sheet cần áp dụng, chọn sự kiện SelectionChange

Bước 4: Xây dựng quy trình hoạt động cho lệnh VBA

Trình tự như sau:

  • Xác định vị trí được chọn và giới hạn bảng dữ liệu
  • Bỏ tô màu toàn bộ nội dung trong bảng (bỏ tô màu của các dòng đã chọn trước đó)
  • Tô màu cho vị trí dòng được chọn
  • Nếu chọn tới vị trí bên ngoài bảng thì sẽ bỏ tô màu toàn bộ bảng

Ở đây chúng ta có thể giới hạn bảng tính để áp dụng thử với vùng A5:M10

Câu lệnh VBA sẽ là:

Các bạn lưu ý đối tượng Target ở đây là đối tượng được quy định sẵn của Excel, được hiểu là vị trí được chọn trong bảng tính.

Tùy theo độ rộng của bảng tính mà chúng ta thiết lập giới hạn cho phù hợp

Tương tự như vậy các bạn có thể thực hiện thêm việc tô màu cho cột của dòng được chọn.

Quy trình đúng phải là Bỏ tô màu cả bảng trước, sau đó mới tô màu vào vị trí được chọn.

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