Cách đổi màu dòng trong Excel tùy theo giá trị trong ô. VBA Excel. Màu ô (tô, nền). Mô hình màu RGB

Nếu một giá trị trong một ô đáp ứng điều kiện do người dùng xác định, bạn có thể sử dụng giá trị đó để đánh dấu ô đó (ví dụ: thay đổi nền của ô đó). Trong bài viết này chúng ta sẽ đi xa hơn - chúng ta sẽ chọn toàn bộ hàng của bảng chứa ô này.

Để trong phạm vi A6:C16 Có bảng danh sách công việc, deadline và tình trạng hoàn thành (xem file ví dụ).

Nhiệm vụ 1 - giá trị văn bản

Cần đánh dấu dòng chứa công việc có trạng thái nhất định. Ví dụ: nếu công việc chưa bắt đầu thì dòng sẽ được đánh dấu màu đỏ, nếu công việc chưa được hoàn thành thì có màu xám và nếu đã hoàn thành thì có màu xanh lục. Chúng tôi sẽ chọn dòng bằng cách sử dụng các quy tắc.

Giải pháp 1

Hãy tạo một bảng nhỏ với các trạng thái công việc trong phạm vi E6:E9 .

Chọn một dãy ô A7:C17 , chứa danh sách các tác phẩm và cài đặt nó thông qua menu Trang chủ/ Tô màu nền tô màu đỏ (chúng tôi giả định rằng tất cả các tác phẩm ban đầu đều ở trạng thái Chưa bắt đầu).

Đảm bảo phạm vi ô được chọn A7:C17 (A7 cần phải ). Gọi lệnh menu Định dạng có điều kiện / Tạo quy tắc / Sử dụng công thức để xác định ô nào cần định dạng.

  • trong lĩnh vực " Định dạng các giá trị mà công thức sau là đúng"bạn cần nhập =$C7=$E$8 (trong ô E8 giá trị được tìm thấy Trong tiến trình). Xin lưu ý việc sử dụng ;
  • Nhấn nút Định dạng;
  • chọn tab Đổ đầy;
  • chọn màu xám ;
  • Bấm vào đồng ý.

CHÚ Ý: Một lần nữa tôi chú ý đến công thức =$C7=$E$8 . Thông thường người dùng nhập =$C$7=$E$8 , tức là nhập thêm một biểu tượng đô la.

Bạn cần thực hiện các bước tương tự để đánh dấu công việc trong trạng thái Hoàn thành. Công thức trong trường hợp này sẽ có dạng =$C7=$E$9 và đặt màu tô thành màu xanh lục.

Kết quả là bảng của chúng ta sẽ có dạng sau.

Để nhanh chóng mở rộng các quy tắc Định dạng có điều kiện sang một hàng mới trong bảng, hãy chọn các ô của hàng mới ( A17:C17 ) và hãy nhấn . Các quy tắc sẽ được sao chép vào dòng 17 những cái bàn.

Nhiệm vụ2 - Ngày tháng

Giả sử rằng nhật ký tham dự của nhân viên tại các hội nghị khoa học được lưu giữ (xem. tập tin bảng mẫu Ngày).

Rất tiếc, cột Ngày truy cập không được sắp xếp và bạn cần đánh dấu ngày truy cập đầu tiên và cuối cùng của mỗi nhân viên. Ví dụ, nhân viên Kozlov đi dự hội nghị lần đầu tiên vào ngày 24/7/2009 và lần cuối cùng là vào ngày 18/7/2015.

Trước tiên, hãy tạo một công thức định dạng có điều kiện trong cột B và E. Nếu công thức trả về TRUE thì hàng tương ứng sẽ được đánh dấu, nếu FALSE thì không.

Ở cột D đã tạo = MAX(($A7=$A$7:$A$16)*$B$7:$B$16)=$B7, xác định ngày tối đa cho một nhân viên cụ thể.

Ghi chú: Nếu bạn cần xác định ngày tối đa bất kể nhân viên là ai thì công thức sẽ được đơn giản hóa đáng kể =$B7=MAX($B$7:$B$16) và công thức mảng sẽ không cần thiết.

Bây giờ, hãy chọn tất cả các ô trong bảng không có tiêu đề và tạo quy tắc. Hãy sao chép công thức vào quy tắc (bạn không cần nhập công thức đó dưới dạng công thức mảng!).

Bây giờ, giả sử rằng cột có ngày tháng đã được sắp xếp và bạn muốn chọn các hàng có ngày truy cập nằm trong một phạm vi nhất định.

Để thực hiện việc này, hãy sử dụng công thức =AND($B23>$E$22,$B23<$E$23)

Đối với tế bào E22 E23 với ngày ranh giới (đánh dấu màu vàng) được sử dụng $E$22 và $E$23. Bởi vì tham chiếu đến chúng không được thay đổi theo quy tắc UV cho tất cả các ô của bảng.

Đối với tế bào B22 địa chỉ hỗn hợp $B23 được sử dụng, tức là tham chiếu đến cột B không được thay đổi (đối với cột này có dấu $ trước B), nhưng tham chiếu đến hàng sẽ thay đổi tùy thuộc vào hàng của bảng (nếu không tất cả các giá trị ngày sẽ được so sánh với ngày từ B23 ).

Vì vậy, ví dụ quy tắc UV cho một tế bào A27 sẽ nhìn =AND($B27>$E$22,$B27<$E$23) , т.е. A27 sẽ được làm nổi bật bởi vì trong dòng này ngày từ B27 nằm trong phạm vi được chỉ định (đối với các ô từ cột A, việc lựa chọn sẽ vẫn được thực hiện tùy thuộc vào nội dung của cột B từ cùng một hàng - đây là “điều kỳ diệu” của địa chỉ hỗn hợp $B23).

Và đối với tế bào B31 quy tắc UV sẽ có dạng =AND($B31>$E$22,$B31<$E$23) , т.е. В31 не будет выделена, т.к. в этой строке дата из B31 không nằm trong phạm vi quy định.

Tô màu cho ô trong VBA Excel. Nền tế bào. Thuộc tính.Interior.Color và.Interior.ColorIndex. Mô hình màu RGB. Bảng màu tiêu chuẩn gồm 56 màu. Các hằng số được xác định trước.

Thuộc tính The.Interior.Color của đối tượng Range

Bắt đầu với Excel 2007, cách chính để tô màu cho một dải ô hoặc từng ô riêng lẻ (tô màu, thêm, thay đổi nền) là sử dụng thuộc tính.Interior.Color của đối tượng Phạm vi bằng cách gán cho nó một giá trị màu dưới dạng số thập phân từ 0 đến 16777215 (tổng cộng 16777216 màu).

Tô màu cho ô trong VBA Excel

Mã ví dụ 1:

Phạm vi phụ ColorTest1()("A1").Interior.Color = 31569 Phạm vi("A4:D8").Interior.Color = 4569325 Phạm vi("C12:D17").Cells(4).Interior.Color = 568569 Ô (3, 6).Interior.Color = 12659 End Sub

Đặt mã ví dụ vào mô-đun chương trình của bạn và nhấn nút trên thanh công cụ "Run Sub" hoặc trên bàn phím "F5", con trỏ phải ở bên trong chương trình thực thi. Trong bảng tính Excel đang hoạt động, các ô và phạm vi được chọn trong mã sẽ xuất hiện với màu sắc thích hợp.

Có một sắc thái thú vị: nếu được gán cho một tài sản .Màu nội thất giá trị âm từ -16777215 đến -1, khi đó màu sẽ tương ứng với giá trị bằng tổng giá trị bảng màu tối đa (16777215) và giá trị âm được chỉ định. Ví dụ: việc điền cả ba ô sau khi thực thi đoạn mã sau sẽ giống nhau:

Sub ColorTest11() Ô(1, 1).Interior.Color = -12207890 Ô(2, 1).Interior.Color = 16777215 + (-12207890) Ô(3, 1).Interior.Color = 4569325 End Sub

Đã thử nghiệm trong Excel 2016.

Hiển thị thông báo về giá trị màu số

Không thể nhớ các giá trị số của màu sắc, vì vậy câu hỏi thường được đặt ra là làm thế nào để tìm ra giá trị số của nền ô. Mã VBA Excel sau đây hiển thị thông báo về giá trị số của các màu được gán trước đó.

Mã ví dụ 2:

Sub ColorTest2() Phạm vi MsgBox("A1").Interior.Color MsgBox Range("A4:D8").Interior.Color MsgBox Range("C12:D17").Cells(4).Interior.Color MsgBox Cells(3 , 6).Interior.Color End Sub

Thay vì hiển thị thông báo, bạn có thể gán giá trị màu số cho các biến bằng cách khai báo chúng là Long.

Sử dụng các hằng số được xác định trước

VBA Excel có các hằng số được xác định trước cho các màu tô ô thường được sử dụng:

Màu được gán cho một ô có hằng số được xác định trước trong VBA Excel theo cách tương tự như với giá trị số:

Mã ví dụ 3:

Phạm vi ("A1"). Nội thất.Color = vbGreen

Mô hình màu RGB

Hệ màu RGB là sự kết hợp của ba màu cơ bản có cường độ khác nhau: đỏ, lục và lam. Chúng có thể lấy các giá trị từ 0 đến 255. Nếu tất cả các giá trị bằng 0 thì nó có màu đen, nếu tất cả các giá trị là 255 thì nó có màu trắng.

Bạn có thể chọn một màu và tìm hiểu các giá trị RGB của nó bằng bảng Excel:

Trước khi bạn có thể gán màu cho một ô hoặc dải ô bằng giá trị RGB, chúng phải được chuyển đổi thành số thập phân đại diện cho màu. Có một hàm VBA Excel cho việc này, được gọi là RGB.

Mã ví dụ 4:

Phạm vi("A1").Interior.Color = RGB(100, 150, 200)

Property.Interior.ColorIndex của đối tượng Range

Trước khi Excel 2007 ra đời, chỉ có một bảng màu giới hạn để tô nền cho các ô, bao gồm 56 màu, vẫn tồn tại cho đến ngày nay. Mỗi màu trong bảng màu này được gán một chỉ mục từ 1 đến 56. Bạn có thể gán màu cho một ô theo chỉ mục hoặc hiển thị thông báo về màu đó bằng thuộc tính .Interior.ColorIndex:

Mã ví dụ 5:

Phạm vi("A1").Interior.ColorIndex = 8 MsgBox Phạm vi("A1").Interior.ColorIndex

Bạn có thể xem bảng màu giới hạn để tô nền cho các ô bằng cách chạy macro đơn giản nhất trong VBA Excel:

Mã ví dụ 6:

Sub ColorIndex() Dim i As Byte For i = 1 đến 56 Cells(i, 1).Interior.ColorIndex = i Next End Sub

Số hàng của trang tính đang hoạt động từ 1 đến 56 sẽ tương ứng với chỉ mục màu và ô ở cột đầu tiên sẽ được tô nền tương ứng với chỉ mục.

Bạn có thể thấy bảng màu tiêu chuẩn đã hoàn thành gồm 56 màu.

Đổ màu cho một lớp là một thao tác đơn giản và phổ biến trong Photoshop. Điều này có thể cần được thực hiện khi bạn cần một nền đơn giản hoặc áp dụng một số bóng lên hình ảnh - chẳng hạn như tông màu, sử dụng một lớp có màu vàng để tạo hiệu ứng màu nâu đỏ.

Để tạo một lớp hoàn toàn bằng một màu, tôi đã đếm được 5 cách có thể.

Phương pháp tô màu một lớp

Phương pháp 1

Lệnh thực đơn Chỉnh sửa - Điền(Đổ đầy) , hoặc nhấn tổ hợp phím nóng để sao chép lệnh này:

Tổ hợp phím nóng: Shift+F5

Một hộp thoại sẽ mở ra Đổ đầy. Trong đó, trong danh sách thả xuống Sử dụng lựa chọn Màu sắc. Bảng chọn màu sẽ ngay lập tức mở ra. Quyết định màu sắc và nhấp vào ĐƯỢC RỒI.

Phương pháp 2

Sử dụng tổ hợp phím Alt+Backspace, lớp này sẽ được tô bằng màu chính được đặt trên bảng công cụ - .

Phương pháp 3 Công cụ tô màu

Từ thanh công cụ, chọn Công cụ điền. Nhấp vào lớp và nó sẽ ngay lập tức được sơn bằng màu chính (xem ví dụ ở trên).

Việc tô màu hoạt động khi không có gì thêm trên lớp. Nếu không, công cụ sẽ chỉ vẽ một số vùng nhất định.

Tôi nhớ khi mới bắt đầu học Photoshop, tôi đã sử dụng chính xác phương pháp này. Ý tưởng là bạn chỉ cần vẽ lên lớp đó bằng cọ, giống như Tom Sawyer vẽ hàng rào.

Tất cả các phương pháp trên đều có một nhược điểm chung - trong trường hợp cần thiết, lớp phủ màu sẽ không tăng lên. Phần canvas đã được thêm vào sẽ tự động được tô lên bằng màu nền.

Ví dụ. Ban đầu, lớp này được phủ đầy sơn màu vàng. Sau khi phóng to khung vẽ, màu đỏ được thêm dọc theo đường viền, phù hợp với những gì được hiển thị trên chỉ báo màu nền.

Để ngăn chặn điều này, bạn cần sử dụng phương pháp sau.

Phương pháp 5 Đổ đầy lớp

Chạy lệnh Lớp - Lớp điền mới(Lớp phủ mới) - Màu sắc. Bạn có thể bấm OK ngay lập tức. Sau đó, một bảng chọn màu tô sẽ xuất hiện. Lựa chọn.