Excel vba định dạng có điều kiện toàn bộ cột

Chào mừng trở lại blog VBA. Tuần này, chúng ta sẽ mở rộng kiến ​​thức về cách đánh dấu các ô đã chọn trong một trang tính từ bài báo tuần trước

Tuần trước, chúng tôi đã sử dụng cả tập lệnh VBA và định dạng có điều kiện để đánh dấu hàng và cột của các ô đã chọn. Tuần này, chúng ta sẽ tạo tập lệnh VBA để đạt được hiệu quả tương tự như blog của tuần trước

Chúng tôi muốn thêm các hàng và cột đánh dấu cho tập dữ liệu bên dưới

Excel vba định dạng có điều kiện toàn bộ cột

Kết quả sẽ như thế này

Excel vba định dạng có điều kiện toàn bộ cột

Bước đầu tiên là thêm một sự kiện SelectionChange mới vào trang tính mục tiêu như được mô tả trước đó, cùng với một số biến có liên quan

Sau đó, chúng ta sử dụng câu lệnh On Error Resume Next. Là một trong những thủ tục xử lý lỗi được sử dụng nhiều nhất, nó cho phép thực thi tiếp tục bất chấp lỗi thời gian chạy

Chúng tôi xóa định dạng hiện tại trong các ô của trang tính đích (Nếu có) và gán chỉ mục màu cho biến iColor

tế bào. điều kiện định dạng. Xóa bỏ

iColor = 15

Sau đó, chúng tôi sử dụng câu lệnh With để định vị toàn bộ định dạng hàng của ô mục tiêu. Ở đây, chúng tôi xóa định dạng ô đích, thêm tham số loại điều kiện định dạng xlExpression, chỉ định xem định dạng có điều kiện dựa trên giá trị ô hay biểu thức, sau đó gán chỉ mục màu cho chỉ mục màu bên trong của ô đích

với mục tiêu. Toàn bộ hàng. điều kiện định dạng

     . Xóa bỏ

     . Thêm xlExpression, , "TRUE"

     . Mục 1). Nội địa. Chỉ số màu = iColor

Kết thúc với

Tiếp theo, chúng tôi áp dụng logic mã hóa tương tự cho toàn bộ định dạng cột của ô mục tiêu như mã được chỉ ra bên dưới

Lưu ý rằng bạn cần chỉnh sửa G1 thành ô đầu tiên của phạm vi được định dạng; . Nếu bạn chỉ bắt đầu ở hàng thứ hai thì tham chiếu ô sẽ là G2, đây sẽ là ô đầu tiên của phạm vi

Đoạn mã VBA sau sẽ thực hiện định dạng Điều kiện trên toàn bộ cột. Chỉnh sửa tên trang tính và Id cột theo yêu cầu của bạn. Cũng chỉnh sửa màu sắc

Tôi đã cung cấp các tùy chọn cho các phương pháp đặt màu. Phương pháp RGB là tốt nhất để bạn có thể đặt chính xác các màu được yêu cầu. Để lấy mã RGB, trên một trang tính, hãy chọn ô bất kỳ rồi chọn danh sách thả xuống màu. Chọn một màu rồi chọn  "Màu khác" và trên hộp thoại, chọn tab Tùy chỉnh và bạn sẽ thấy mã màu rgb

Bạn cũng có thể sử dụng các hằng số màu giới hạn như sau. (Mã ví dụ nhận xét cho việc sử dụng này)

Đánh dấu các ô dựa trên toán tử so sánh và giá trị (Tối đa 3 điều kiện)

Sử dụng điều kiện định dạng. Thêm  FormatConditions là một thuộc tính của đối tượng Range. Add có các thông số sau. Bộ sưu tập FormatConditions chỉ có thể chứa 3 FormatConditions

FormatConditions.Add(Type, Operator, Formula1, Formula2)

Tham số Loại có các tùy chọn sau. Đối với loại điều kiện này, hãy sử dụng xlCellValue

Nhấn vào đây để đăng ký khóa học VBA Excel cơ bản
Hơn 30 giờ - bao gồm chứng nhận

Tất cả các giao dịch mua giúp hỗ trợ blog này - cảm ơn

Sự miêu tả

Tên

Giá trị

Điều kiện trên trung bình

xlTình trạng trên mức trung bình

12

Điều kiện trống

xlTrốngĐiều kiện

10

giá trị ô

xlCellValue

1

thang màu

xlThang màu

3

thanh dữ liệu

xlDatabar

4

tình trạng lỗi

xlErrorsĐiều kiện

16

Sự diễn đạt

xlExpression

2

Bộ biểu tượng

XlBiểu TượngBộ

6

Không có điều kiện trống

xlKhông có khoảng trốngĐiều kiện

13

Không có điều kiện lỗi

xlNoErrorsTình trạng

17

chuỗi văn bản

xlTextString

9

khoảng thời gian

xlThời gianThời gian

11

10 giá trị hàng đầu

xlTop10

5

Giá trị duy nhất

xlGiá trị duy nhất

8

Tham số Người vận hành có các tùy chọn sau. xlBetween,xlEqual, xlGreater, xlGreaterEqual, xlLess, xlLessEqual, xlNotBetween hoặc xlNotEqual. Sử dụng thông số này cùng với thông số Công thức 1 và Công thức 2

Sub threecf()
Dim rg As Range
Dim cond1 As FormatCondition, cond2 As FormatCondition, cond3 As FormatCondition
Set rg = Range("A2", Range("A2").End(xlDown))

'clear any existing conditional formatting
rg.FormatConditions.Delete

'define the rule for each conditional format
Set cond1 = rg.FormatConditions.Add(xlCellValue, xlGreater, "=$a$1")
Set cond2 = rg.FormatConditions.Add(xlCellValue, xlLess, "=$a$1")
Set cond3 = rg.FormatConditions.Add(xlCellValue, xlEqual, "=$a$1")

'define the format applied for each conditional format
With cond1
.Interior.Color = vbGreen
.Font.Color = vbWhite
End With

With cond2
.Interior.Color = vbRed
.Font.Color = vbWhite
End With

With cond3
.Interior.Color = vbYellow
.Font.Color = vbRed
End With

End Sub

Đoạn mã trên áp dụng định dạng có điều kiện được hiển thị bên dưới

Excel vba định dạng có điều kiện toàn bộ cột

Nhấn vào đây để đăng ký khóa học VBA Excel cơ bản
Hơn 30 giờ - bao gồm chứng nhận

Tất cả các giao dịch mua giúp hỗ trợ blog này - cảm ơn

Đánh dấu các ô dựa trên toán tử so sánh và giá trị (Không giới hạn về quy tắc)

Để áp dụng nhiều hơn 3 định dạng có điều kiện cho một phạm vi, bạn sẽ cần sử dụng IF hoặc Select Case – xem mã bên dưới