Dưới đây chúng ta sẽ xem xét một chương trình trong Excel VBA tô màu giá trị lớn nhất của một dải động.

Tình huống:

Mỗi lần chúng tôi thêm một số và chúng tôi nhấp vào nút lệnh, chúng tôi muốn Excel VBA tô màu giá trị lớn nhất của các số này.

Dynamic Range in Excel VBA

Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau:

  1. Đầu tiên, chúng ta khai báo một biến và hai đối tượng Range. Một biến kiểu Double mà chúng tôi gọi là tối đa. Chúng tôi gọi các đối tượng Range là rng và ô.

Dim maximum As Double, rng As Range, cell As Range
  1. Chúng tôi 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
Set rng = Range("A1").CurrentRegion
  1. Chúng tôi khởi tạo tối đa với giá trị lớn nhất của các số. Chúng tôi sử dụng hàm trang tính Max để tìm giá trị lớn nhất.

maximum = WorksheetFunction.Max(rng)
  1. Cuối cùng, chúng tôi tô màu giá trị lớn nhất. Chúng tôi sử dụng cho mỗi vòng tiếp theo.

For Each cell In rng

If cell.Value = maximum Then cell.Interior.ColorIndex = 22

Next cell

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

  1. Thêm một số.

Kết quả khi bạn bấm vào nút lệnh trên sheet:

Dynamic Range Result