Như Sinh viên của Gary đã chỉ ra, bạn có thể sử dụng Định dạng có điều kiện để thay đổi màu (được đặt thành màu xám) dựa trên giá trị của giá trị này (hoặc bất kỳ ô nào). Tuy nhiên, nếu bạn đang sử dụng trang tính Được bảo vệ và muốn bật / tắt các ô (nghĩa là bật hoặc tắt Bảo vệ) và cũng để thay đổi màu của các ô dựa trên việc có được bảo vệ hay không, bạn sẽ cần sử dụng bit của VBA để bảo vệ / bỏ bảo vệ các ô, sau đó sử dụng định dạng có điều kiện để đặt màu.
Định dạng có điều kiện sẽ đặt màu dựa trên việc ô có được bảo vệ hay không. Vì vậy, một cái gì đó giống như công thức này:
= CELL ("bảo vệ", $ A1) = 1
Và VBA có thể được đặt trong phụ Worksheet_Change (). Bạn có thể làm điều này thanh lịch hơn, nhưng về cơ bản là như thế này:
If Target.Address = "$A$2" Then
ActiveSheet.Unprotect
Range("A3").Select
Selection.Locked = IIf(Range("A2").Value > "", True, False)
Range("A2").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
FormulaIs
tùy chọn trong định dạng có điều kiện với một cái gì đó như=LEN(A1)<>0