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

Định dạng có điều kiện là một kỹ thuật trong Excel cho phép chúng ta định dạng các ô trong bảng tính dựa trên các điều kiện nhất định. Nó có thể được tìm thấy trong phần phong cách của tab Trang chủ. đọc thêmđến một ô hoặc phạm vi ô trong Excel. Định dạng có điều kiện là định dạng chỉ được áp dụng cho các ô đáp ứng các tiêu chí nhất định, chẳng hạn như giá trị trên một giá trị cụ thể, giá trị dương hoặc âm hoặc giá trị có công thức cụ thể, v.v. Định dạng có điều kiện này cũng có thể được thực hiện trong lập trình Excel VBA bằng cách sử dụng macro/quy trình 'Bộ sưu tập FormatConditions'

FormatConditions đại diện cho một định dạng có điều kiện mà người ta có thể đặt bằng cách gọi một phương thức trả về một biến thuộc loại đó. Nó chứa tất cả các định dạng có điều kiện cho một phạm vi duy nhất và chỉ có thể chứa ba điều kiện định dạng

Mục lục

điều kiện định dạng. Thêm/Sửa đổi/Xóa được sử dụng trong VBA để thêm/sửa đổi/xóa các đối tượng FormatCondition vào bộ sưu tập. Một đối tượng FormatCondition đại diện cho mỗi định dạng. FormatConditions là một thuộc tính của đối tượng Range và Thêm các tham số sau với cú pháp bên dưới

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

Cú pháp Thêm công thức có các đối số sau

  • Loại. Yêu cầu. Nó đại diện cho định dạng có điều kiện dựa trên giá trị có trong ô hoặc một biểu thức
  • Nhà điều hành. Không bắt buộc. Nó đại diện cho giá trị của toán tử khi 'Loại' dựa trên giá trị ô
  • Công thưc 1. Không bắt buộc. Nó đại diện cho giá trị hoặc biểu thức được liên kết với định dạng có điều kiện
  • công thức 2. Không bắt buộc. Nó đại diện cho giá trị hoặc biểu thức được liên kết với phần thứ hai của định dạng có điều kiện khi tham số. 'Toán tử' là 'xlBetween' hoặc 'xlNotBetween. ’

điều kiện định dạng. Modify cũng có cú pháp tương tự như FormatConditions. Thêm vào

Sau đây là danh sách một số giá trị/liệt kê mà một số tham số của 'Thêm'/'Sửa đổi' có thể nhận

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

Ví dụ về định dạng có điều kiện VBA

Dưới đây là các ví dụ về định dạng có điều kiện trong Excel VBA

Bạn có thể tải xuống Mẫu định dạng có điều kiện VBA này tại đây -

Ví dụ 1

Chúng tôi có một tệp Excel chứa tên và điểm của một số học sinh. Chúng tôi muốn xác định/làm nổi bật các dấu là “Đậm” và “xanh”, lớn hơn 80. “Đậm” và “Đỏ” nhỏ hơn 50. Hãy cho chúng tôi xem dữ liệu chứa trong tệp

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

Chúng tôi sử dụng FormatConditions. Thêm chức năng dưới đây để thực hiện điều này

  • Chuyển đến Nhà phát triển -> Trình chỉnh sửa Visual Basic
Excel VBA định dạng có điều kiện toàn bộ hàng
  • Nhấp chuột phải vào tên sổ làm việc trong ngăn ‘Project-VBAProject’-> ‘Insert’-> ‘Module. ’
Excel VBA định dạng có điều kiện toàn bộ hàng
  • Bây giờ hãy viết mã/quy trình trong mô-đun này

Mã số

Sub formatting()

End Sub
Excel VBA định dạng có điều kiện toàn bộ hàng
  • Xác định biến rng, điều kiện1, điều kiện2.

Mã số

Sub formatting()

  Dim rng As Range
  Dim condition1 As FormatCondition, condition2 As FormatCondition

End Sub
Excel VBA định dạng có điều kiện toàn bộ hàng
  • Đặt/sửa phạm vi mà định dạng có điều kiện cần bằng chức năng 'Phạm vi' của VBA.

Mã số

Sub formatting()

  Dim rng As Range
  Dim condition1 As FormatCondition, condition2 As FormatCondition

  Set rng = Range("B2", "B11")

End Sub
Excel VBA định dạng có điều kiện toàn bộ hàng
  • Xóa/xóa mọi định dạng có điều kiện hiện có (nếu có) khỏi phạm vi, sử dụng 'Điều kiện định dạng. Xóa bỏ'.

Mã số

Sub formatting()

  Dim rng As Range
  Dim condition1 As FormatCondition, condition2 As FormatCondition

  Set rng = Range("B2", "B11")

  rng.FormatConditions.Delete

End Sub
Excel VBA định dạng có điều kiện toàn bộ hàng
  • Bây giờ, hãy xác định và đặt tiêu chí cho từng định dạng có điều kiện, sử dụng 'FormatConditions. Thêm vào'.

Mã số

Sub formatting()

  Dim rng As Range
  Dim condition1 As FormatCondition, condition2 As FormatCondition

  Set rng = Range("B2", "B11")

  rng.FormatConditions.Delete

  Set condition1 = rng.FormatConditions.Add(xlCellValue, xlGreater, "=80")
  Set condition2 = rng.FormatConditions.Add(xlCellValue, xlLess, "=50")

End Sub
Excel VBA định dạng có điều kiện toàn bộ hàng
  • Xác định và đặt định dạng được áp dụng cho từng điều kiện.
Excel VBA định dạng có điều kiện toàn bộ hàng

Sao chép và dán mã này vào Mô-đun lớp VBA Mô-đun lớp VBANgười dùng có thể . Các đối tượng được tạo trong mô-đun này có thể được sử dụng trong bất kỳ dự án VBA nào. đọc thêm .

Mã số

Sub formatting()

  'Definining the variables:
  Dim rng As Range
  Dim condition1 As FormatCondition, condition2 As FormatCondition

 'Fixing/Setting the range on which conditional formatting is to be desired
  Set rng = Range("B2", "B11")

  'To delete/clear any existing conditional formatting from the range
   rng.FormatConditions.Delete

  'Defining and setting the criteria for each conditional format
   Set condition1 = rng.FormatConditions.Add(xlCellValue, xlGreater, "=80")
   Set condition2 = rng.FormatConditions.Add(xlCellValue, xlLess, "=50")

   'Defining and setting the format to be applied for each condition
   With condition1
    .Font.Color = vbBlue
    .Font.Bold = True
   End With

   With condition2
     .Font.Color = vbRed
      .Font.Bold = True
   End With

End Sub

Bây giờ, khi chúng tôi chạy mã này bằng cách sử dụng phím F5 hoặc theo cách thủ công, chúng tôi thấy rằng các điểm nhỏ hơn 50 được đánh dấu bằng chữ đậm và màu đỏ, trong khi các điểm lớn hơn 80 được đánh dấu bằng chữ đậm và màu xanh lam như sau

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

Ghi chú. Một số thuộc tính cho sự xuất hiện của các ô được định dạng mà chúng ta có thể sử dụng với FormatCondition là

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

Ví dụ #2

Hãy nói trong ví dụ trên. Chúng tôi có một cột khác nói rằng học sinh là 'Người đứng đầu' nếu họ đạt điểm trên 80. Khác, Pass / Fail bằng văn bản đối với họ. Bây giờ, chúng tôi muốn làm nổi bật các giá trị được nêu là 'Topper' là "Đậm" và "Xanh. ” Hãy cho chúng tôi xem dữ liệu có trong tệp

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

Trong trường hợp này, mã/quy trình sẽ hoạt động như sau

Mã số

Sub TextFormatting()

End Sub
Excel VBA định dạng có điều kiện toàn bộ hàng

Xác định và đặt định dạng được áp dụng cho từng điều kiện

Mã số

Sub TextFormatting()

With Range("c2:c11").FormatConditions.Add(xlTextString, TextOperator:=xlContains, String:="topper")
With .Font
.Bold = True
.Color = vbBlue
End With
End With

End Sub
Excel VBA định dạng có điều kiện toàn bộ hàng

Chúng ta có thể thấy trong đoạn mã trên rằng chúng ta muốn kiểm tra xem phạm vi. ‘C2. C11″ chứa chuỗi. “Topper”, vì vậy tham số. “Onamestor” của ‘Định dạng. Add' lấy phép liệt kê. ” Xcontains” để kiểm tra điều kiện này trong phạm vi cố định (i. e. , C2. C11). Sau đó, thực hiện định dạng có điều kiện bắt buộc (thay đổi phông chữ) trên phạm vi này.

Bây giờ khi chúng tôi chạy mã này theo cách thủ công hoặc bằng cách nhấn phím F5, chúng tôi sẽ thấy rằng các giá trị ô có 'Topper' được đánh dấu bằng màu xanh lam và in đậm

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

Ghi chú. Trong hai ví dụ trên, chúng ta đã thấy phương thức ‘Add’ hoạt động như thế nào trong trường hợp có bất kỳ tiêu chí giá trị ô nào (chuỗi số hoặc văn bản)

Dưới đây là một số trường hợp/tiêu chí khác mà chúng tôi có thể sử dụng để kiểm tra và do đó áp dụng định dạng có điều kiện VBA

  • Định dạng theo Khoảng thời gian
  • Tình trạng trung bình
  • Điều kiện thang màu
  • Biểu tượngĐặt điều kiện
  • điều kiện thanh dữ liệu
  • Giá trị duy nhất
  • Giá trị trùng lặp
  • 10 giá trị hàng đầu
  • Điều kiện phần trăm
  • Điều kiện khoảng trống, v.v.

Với các điều kiện khác nhau để kiểm tra, các giá trị/liệt kê khác nhau được thực hiện bởi các tham số của 'Add. ’

Những điều cần nhớ về định dạng có điều kiện VBA

  • Chúng ta có thể sử dụng phương thức 'Thêm' với 'Điều kiện định dạng' để tạo định dạng có điều kiện mới, phương thức 'Xóa' để xóa bất kỳ định dạng có điều kiện nào và phương thức 'Sửa đổi' để thay đổi bất kỳ định dạng có điều kiện hiện có nào
  • Phương thức 'Thêm' với 'Bộ sưu tập Điều kiện Định dạng' không thành công nếu chúng tôi tạo nhiều hơn ba định dạng có điều kiện cho một phạm vi
  • Để áp dụng nhiều hơn ba định dạng có điều kiện cho một phạm vi bằng phương pháp 'Thêm', chúng ta có thể sử dụng 'Nếu' hoặc 'trường hợp chọn'. ’
  • Nếu phương thức 'Thêm' có tham số 'Loại' của nó là. 'xlExpression', thì tham số 'Toán tử' sẽ bị bỏ qua
  • Những thông số. 'Công thức 1' và 'Công thức 2' trong phương thức 'Thêm' có thể là tham chiếu ô, giá trị hằng số, giá trị chuỗi hoặc thậm chí là công thức
  • Thông số. 'Công thức 2' chỉ được sử dụng khi tham số. 'Toán tử' là 'xlBetween' hoặc 'xlNotBetween', nếu không nó sẽ bị bỏ qua
  • Để xóa tất cả các định dạng có điều kiện khỏi bất kỳ trang tính nào, chúng ta có thể sử dụng phương pháp 'Xóa' như sau
Cells.FormatConditions.Delete

Bài viết được đề xuất

Bài viết này là hướng dẫn về Định dạng có điều kiện trong VBA. Ở đây, chúng ta tìm hiểu cách áp dụng định dạng có điều kiện cho một ô Excel bằng phương pháp Điều kiện định dạng trong VBA, các ví dụ thực tế và mẫu có thể tải xuống. Dưới đây bạn có thể tìm thấy một số bài viết VBA Excel hữu ích. –