Dưới đây chúng ta sẽ xem xét một chương trình trong Excel VBA làm nổi bật hàng và cột của Ô Hoạt động (ô đã chọn). Chương trình này sẽ khiến sếp của bạn ngạc nhiên và ấn tượng.

Tình huống:

Highlight Active Cell in Excel VBA

Mỗi lần chúng ta thay đổi Ô Hoạt động trên Trang tính 1, một macro cần được thực thi. Bạn có thể đạt được điều này bằng cách tạo Sự kiện thay đổi bảng tính.

  1. Mở Trình soạn thảo Visual Basic.

  2. Nhấp đúp vào Trang tính 1 (Sheet1) trong Trình khám phá dự án.

  3. Chọn Trang tính từ danh sách thả xuống bên trái. Chọn SelectionChange từ danh sách thả xuống bên phải.

Worksheet SelectionChange Event in Excel VBA

Thêm các dòng mã sau vào sự kiện Worksheet SelectionChange:

  1. Chúng tôi khai báo bốn biến kiểu Integer. Một tên là rowNumberValue, một tên là columnNumberValue, một tên là i và một tên là j.

Dim rowNumberValue As Integer, columnNumberValue As Integer, i As Integer, j As Integer
  1. Đầu tiên, chúng ta thêm dòng thay đổi màu nền của tất cả các ô thành ‘No Fill’.

Cells.Interior.ColorIndex = 0
  1. Chúng ta khởi tạo biến rowNumberValue với số hàng của Ô Hoạt động và biến columnNumberValue với số cột của Ô Hoạt động.

rowNumberValue = ActiveCell.row

columnNumberValue = ActiveCell.column
  1. Chúng tôi đánh dấu cột màu xanh lam. Đó là: tất cả các ô có số hàng nhỏ hơn hoặc bằng rowNumberValue và số cột bằng columnNumberValue

For i = 1 To rowNumberValue

Cells(i, columnNumberValue).Interior.ColorIndex = 37

Next i

Giải thích: đối với ví dụ này (xem hình trên), rowNumberValue bằng 12 và columnNumberValue bằng 8. Các dòng mã giữa For và Next sẽ được thực thi mười hai lần. Đối với i = 1, Excel VBA tô màu ô tại giao điểm của hàng 1 và cột 8. Đối với i = 2, Excel VBA tô màu ô tại giao điểm của hàng 2 và cột 8, v.v.

Lưu ý: thay vì số ColorIndex 37 (xanh lam), bạn có thể sử dụng bất kỳ số ColorIndex nào.

  1. Theo cách tương tự, chúng tôi đánh dấu hàng màu xanh lam. Đó là: tất cả các ô có số hàng bằng rowNumberValue và số cột nhỏ hơn hoặc bằng columnNumberValue.

For j = 1 To columnNumberValue

Cells(rowNumberValue, j).Interior.ColorIndex = 37

Next j
  1. Bây giờ là lúc để kiểm tra chương trình. Tải xuống tệp Excel và xem hàng và cột của Ô Hoạt động được tô sáng như thế nào mỗi khi bạn thay đổi Ô Hoạt động.