Cách thực hiện Định dạng có điều kiện bằng VBA trong Microsoft Excel
Hãy vẽ một bức tranh Monalisa và để lại Picasso bằng cách sử dụng VBA.
Sẵn sàng, Chuẩn bị … Chờ đã! Chờ đợi! Kiên nhẫn một chút. Chúng ta sẽ sử dụng VBA để thực hiện định dạng có điều kiện và nó dễ dàng hơn một bức tranh phải không? hình con chim.
Cú pháp chung của định dạng có điều kiện VBA
If condition than Range(range).Interior.ColorIndex= 1-56
Kiểm tra điều kiện của bạn tại điều kiện và sau đó định dạng phạm vi của bạn bằng cách sử dụng thuộc tính .iteriour.colorindex của đối tượng Phạm vi. Chỉ số màu có 56 màu. Chơi Holi với chúng và khám phá con số nào chứa màu nào.
Bây giờ chúng ta hãy hiểu nó với một ví dụ ==== Ví dụ: Mã VBA để định dạng ô có điều kiện
Vì vậy, đây là kịch bản, chúng tôi có một danh sách những người ngẫu nhiên với tuổi và nhóm tuổi của họ.
Thật dễ dàng biết bao nếu chỉ cần nhìn vào tên của họ, bạn có thể biết được nhóm tuổi của một người.
Bây giờ để làm điều này, tôi muốn định dạng VBA Tên ĐỎ nếu anh ta là người lớn, VÀNG nếu anh ta là thanh thiếu niên và XANH LÁ nếu anh ta là KID và không có gì nếu ô trống.
Sub FormatUsingVBA() Dim rng As Range Dim lastRow As Long lastRow = Cells(Rows.Count, 3).End(xlUp).Row Set rng = Range("C2:C" & lastRow)For Each cell In rng If cell.Value2 = "Adult" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 6 Else Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 0 End If Next cell End Sub
Để chạy mã này ngay từ trang tính, tôi đã vẽ một nút trên cùng một trang tính và gán macro này cho nó. Bây giờ, bất cứ khi nào bạn nhấp vào nút “Định dạng”, mã của bạn sẽ chạy và cập nhật các ô tên với màu tùy thuộc vào nhóm tuổi của chúng. Làm sao? Hãy cùng tìm hiểu.
Giải thích mã:
Dim rng As RangeDim lastRow As LongThese two lines are variable declarations. rng for Range that holds the age group and lastRow to get last nonblank row number.
lastRow = Cells(Rows.Count, 3).End(xlUp).RowThis line returns last row number in lastRow Variable.
Set rng = Range("C2:C" & lastRow)This line sets the range starting from C2 and to the last row. It makes your code dynamic. You add new rows to your data and it will detect and will store in new range in rng variable.
For Each cell In rng If cell.Value2 = "Adult" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 6 Else Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 0 End If Next cell
Đây là phân khúc chính.
For Each cell In rng
Dòng đầu tiên chạy vòng lặp đến tất cả các ô trong phạm vi của bạn. If cell.Value2 = “Adult” Thì Dòng tiếp theo là kiểm tra điều kiện. Nó kiểm tra xem giá trị ô hiện tại có phải là Adult hay không.
Nếu có thì dòng tiếp theo sẽ chạy, nếu không nó sẽ bỏ qua câu lệnh if tiếp theo.Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 Bây giờ nếu điều kiện IF trả về TRUE, thì dòng này đặt màu ô thành ColorIndex 3 dành cho RED.
Tương tự, các câu lệnh IF sau chạy và thực hiện hành động như đã chỉ định.
Vì vậy, bạn có thể định dạng phạm vi có điều kiện bằng VBA. Phương thức bên trong của đối tượng Range kiểm soát nhiều thuộc tính khác để định dạng. Bạn nên chơi đùa với chúng, nó sẽ không gây hại gì nhưng bạn sẽ học được một cách chắc chắn. Và nếu bạn phải đối mặt với bất kỳ khó khăn nào hơn những gì tôi ở đây. Đặt câu hỏi của bạn trong phần bình luận.