我有一个供一群人使用的电子表格。其用途是让服务管理员每周为服务技术人员规划运行。
他们输入每项工作以及旅行和任务的预计时间(以分钟为单位),然后将其转换为小数,=SUM(D11:K11)/1440
再格式化为时间。
总行程时间&任务时间加在一起=(SUM(B12,C13,B11))
显示为(00:00:00)。
然后我使用条件格式来绿色的如果少于 7 小时或红色的如果超过7个小时Cell Value < 0.29167
。
技术人员完成工作后,这些步骤就会在下面的行中重复,并添加“实际”时间。
用实际总小时数减去预计总小时数,得出差值=E16-E13
,如果是负数,则表示提前完成,因此需要条件格式化为绿色的如果结果是肯定的,那么他们就落后了,格式为红色的。
最终,我的问题是,当添加新的运行时,这意味着所有条件格式都会混乱,需要重新应用。是否可以将公式包装在 IF 语句中以完全绕过条件格式来更改其颜色?如果不能,那么解决这个问题的最佳方法是什么?
编辑
在这张图片中你可以看到,Jevan 预计在 7 小时内完成比赛,比原计划少 5 分钟,因为他被困在交通中,最终他加班了 31 分钟,比原计划晚了 35 分钟。
答案1
您可以将此 VBA 宏用作标准模块。
Sub TestFormulas()
For Each cell In Range("C1:C15")
If cell.HasFormula = True Then
If cell.Value = 3 Then
cell.Font.Color = vbGreen
ElseIf cell.Value >= 0.33 Then
cell.Font.Color = vbRed
End If
End If
Next
End Sub
注意:
- 将工作簿保存为启用宏。
- 您可以根据需要调整测试值和单元格引用。
答案2
两件事情:
- 无法使用工作表公式来解决条件格式。
- 条件格式在插入行时正确应用格式存在一些已知问题。
您可能需要借助 VBA 来应用固定格式或在添加新数据后重新应用 CF 规则。
您可以使用常规数字格式以不同的颜色显示正数和负数,但这只是字体颜色,而不是单元格填充。
您可能还需要考虑将数据输入与报告(着色)方面分开。如果您的报告在单独的工作表上,使用数据输入表中的数据,您可能不会遇到这些问题。