Hiển thị màu RGB trong một ô (Microsoft Excel)
Dennis muốn lấp đầy ba ô (A1: A3) bằng các giá trị RGB và một ô khác (C1) hiển thị màu dựa trên các giá trị đó. Anh ấy tự hỏi liệu có cách nào dễ dàng để làm điều này không.
Cách dễ nhất để làm điều này là sử dụng macro lấy các giá trị trong A1: A3 và sau đó sửa đổi màu của ô C1 dựa trên các giá trị đó.
Tốt nhất, macro nên kiểm tra để đảm bảo rằng các giá trị trong ô nguồn nằm trong khoảng từ 0 đến 255. Macro sau hoạt động tốt cho mục đích này:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:A3")) Is Nothing Then lRed = Abs(Range("A1").Value) Mod 256 lGreen = Abs(Range("A2").Value) Mod 256 lBlue = Abs(Range("A3").Value) Mod 256 Range("C1").Interior.Color = RGB(lRed, lGreen, lBlue) End If End Sub
Lưu ý rằng macro này nên được thêm vào mã cho trang tính có các ô tồn tại. (Chỉ cần nhấp chuột phải vào tab trang tính và chọn Mã Chế độ xem, sau đó thêm macro vào đó.) Đây là một trình xử lý sự kiện được tự động chạy mỗi khi có thay đổi trong ô A1, A2 hoặc A3.
Giá trị trong các ô đó được đảm bảo nằm trong khoảng từ 0 đến 255 bằng cách lấy giá trị tuyệt đối của nội dung ô và sử dụng phần còn lại (modulo)
chia nó cho 256.
Macro chỉ hoạt động khi bạn thay đổi thủ công giá trị trong phạm vi A1: A3 (giá trị RGB của bạn). Nếu các giá trị trong phạm vi đó là kết quả của các công thức thì nó sẽ không hoạt động đúng cách vì bạn không thay đổi các ô theo cách thủ công. Trong trường hợp đó, bạn nên sử dụng sửa đổi đơn giản hơn này của macro:
Private Sub Worksheet_Change(ByVal Target As Range) lRed = Abs(Range("A1").Value) Mod 256 lGreen = Abs(Range("A2").Value) Mod 256 lBlue = Abs(Range("A3").Value) Mod 256 Range("C1").Interior.Color = RGB(lRed, lGreen, lBlue) End Sub
Phiên bản này cập nhật màu bất kỳ lúc nào có nội dung thay đổi trong trang tính, bất kể thay đổi xảy ra ở đâu.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (9092) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: