我有一个连续的表格,列出了采样时间以及这些样本中不同化学物质的含量。我想格式化单元格以显示化学水平何时超出范围。我的问题是,它们在每个采样时间都会发生变化。 .3 对于 10 小时的样本来说太高了,但对于 30 小时来说还不错。下面是我的连续形式的示例。
Sample Time Lactics Sugar
10 hour .085 15.2
20 hour .125 12.8
30 hour .345 8.4
40 hour .405 4.2
50 hour .415 1.9
所以我想说“如果 Lactics > .2 在 20 小时则将细胞设为红色”,对于每个时间段和我跟踪的每个组件,依此类推。我如何使用 VBA 进行设置?
创建一个表来保存“超出范围”的规则。
Sample Time Lactics_limit
10 hour .3
20 hour .35
30 hour .4
40 hour .45
50 hour ?
然后将您的表单基于一个查询,该查询将原始表连接到 value_limits 表,并带有计算字段,lactics_flag
,指示值何时超出范围。并根据条件格式lactics_flag
.
SELECT
y.[Sample Time],
y.Lactics,
y.Sugar,
IIf(y.Lactics > v.Lactics_limit, True, False) AS lactics_flag
FROM
YourTable AS y
INNER JOIN value_limits AS v
ON y.[Sample Time] = v.[Sample Time];
比较该方法的简单性与复杂性Expression Is
列出您需要表达相同规则的列表:
([Sample Time]="10 hour" And [Lactics]>0.3) Or ([Sample Time]="20 hour" And [Lactics]>0.35) Or ([Sample Time]="30 hour" And [Lactics]>0.4) Or ([Sample Time]="40 hour" And [Lactics]>0.45) Or ([Sample Time]="50 hour" And [Lactics]>?)
此方法的另一个优点是,当规则存储在表中而不是作为表单中的条件格式表达式时,更容易维护规则。这些规则可以轻松地重新用于其他表格或报告。
如果你没有为每个人制定规则[Sample Time]
,你可以将它们排除在外value_limits
表并使用LEFT JOIN
在查询中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)