我的Excel“优先级”,“可用性”和“周转时间”中有3列 如果我在优先级列下输入“高”,它将根据预定义的标准和公式自动填充其余列(“可用性”为24X7,“周转时间”为4小时)。如果有人操纵数据,例如将“可用性”从4小时更改为6小时或其他不同于标准的值,我想将单元格颜色更改为红色。提前感谢解决方案。
答案 0 :(得分:1)
如果以这种方式覆盖单元格公式,则可能会出现问题。你会以某种方式需要更换公式。如何不首先改变公式?
假设以下布局和单元格公式=IF(B3="High","4 hours","")
在单元格D3中:
那么这样的事情怎么样:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$3" Then
If Not (Range("B3").Value = "High" And Range("D3").Value = "4 hours") Then
qm = Chr(34)
Range("D3").Formula = "=IF(B3=" & qm & "High" & qm & "," & qm & "4 hours" & qm & "," & qm & qm & ")"
End If
End If
End Sub
此代码应放在有问题的Sheet模块中,而不是标准模块中。
编辑对OP OPMENT的回应
正如其名称所示,条件格式化涉及格式化而不涉及单元格的内容。如果您接受不允许覆盖公式的前提,那么您可以考虑在工作表上“锁定”该特定单元格。这样,用户将无法修改单元格或其内容。
有关详细信息,请查看this link。
答案 1 :(得分:0)
使用您要评估的工作表中的'私有子工作表_更改(按范围目标为范围)`事件。 示例:如果有人修改了单元格J2的值,请将文本颜色更改为红色。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$J$2" Then
Range("J2").Font.Color = RGB(255, 0, 0)
End If
End Sub
使用条件格式:
Assuming the cell where you want to apply conditional formatting is: B2.
1.Select the cell or cells where you want to apply conditional formatting.
2.Then, click Home > Conditional Formatting > New Rule.
3.In the New Formatting Rule dialog box, click Use a formula to determine which cells to format.
4.Under Format values where this formula is true, type the formula: =AND($B$2<>"24x7",$B$2 <>"20x7")
The formula uses the AND function to see if the cell B2 is different from the common values: "24x7", "20x7",... [You can keep adding more values separated by commas in the AND function]
If so, the cells are formatted.
5.Click Format.
6.In the Color box, select Red. In the Font Style box, select Bold.