条件格式,检查值是否位于带回车符的字段的第 3 行的访问表达式 returns
Conditional Formatting, access expression that checks if value is on 3rd line of field with carriage returns
我为报告创建了一个矩阵查询,该报告将多个字段与回车连接起来 returns:
TheValue: Max([CLCraftLevel]) & Chr(13) & Chr(10) & Max([CTrainingLevel]) & Chr(13) & Chr(10) & Max([CSignatory]) & Chr(13) & Chr(10) & Max([CAuthDate]) & Chr(13) & Chr(10) & First([CAuthorisedBy])
结果可能如下所示([] 是没有值的行):
1
[]
S
19/01/2021
求职博客
或者这个:
[]
2
[]
[]
[]
或者这个:
[]
[]
S
19/10/2021
求职博客
如果第三行有一个“S”,那么我需要条件格式来在我的报告中将字段变成蓝色,然后如果第二行有一个“2”而第三行没有一个“S”然后我需要条件格式来将字段变成黄色。
我已经尝试了很多表达式选项,最幸运的是:
Left(Mid$([Col8],4,InStrRev([Col8],Chr(13))-1),1)="2"
但是我必须根据看起来填充了多少行来更改 4。
我通常不使用表达式,所以有点迷茫。如果这是更好的方法,我也愿意使用 vba 解决方案。
建议使用 VBA 自定义函数。 Split() 函数将字符串解析为从零开始的一维数组(第三行将是元素索引 2)。由于知道要查看哪个数组元素(不需要循环数组来完成某事),因此不需要完整的数组对象。
Function GetColor(s As String)
If Split(s, vbCrLf)(2) = "S" Then
GetColor = "Blue"
ElseIf Split(s, vbCrLf)(1) = 2 Then
GetColor = "Yellow"
End If
End Function
从条件格式规则调用该函数:
表达式为:GetColor([Col8])="Blue"
表达式为:GetColor([Col8])="Yellow"
我为报告创建了一个矩阵查询,该报告将多个字段与回车连接起来 returns:
TheValue: Max([CLCraftLevel]) & Chr(13) & Chr(10) & Max([CTrainingLevel]) & Chr(13) & Chr(10) & Max([CSignatory]) & Chr(13) & Chr(10) & Max([CAuthDate]) & Chr(13) & Chr(10) & First([CAuthorisedBy])
结果可能如下所示([] 是没有值的行):
1
[]
S
19/01/2021
求职博客
或者这个:
[]
2
[]
[]
[]
或者这个:
[]
[]
S
19/10/2021
求职博客
如果第三行有一个“S”,那么我需要条件格式来在我的报告中将字段变成蓝色,然后如果第二行有一个“2”而第三行没有一个“S”然后我需要条件格式来将字段变成黄色。 我已经尝试了很多表达式选项,最幸运的是:
Left(Mid$([Col8],4,InStrRev([Col8],Chr(13))-1),1)="2"
但是我必须根据看起来填充了多少行来更改 4。
我通常不使用表达式,所以有点迷茫。如果这是更好的方法,我也愿意使用 vba 解决方案。
建议使用 VBA 自定义函数。 Split() 函数将字符串解析为从零开始的一维数组(第三行将是元素索引 2)。由于知道要查看哪个数组元素(不需要循环数组来完成某事),因此不需要完整的数组对象。
Function GetColor(s As String)
If Split(s, vbCrLf)(2) = "S" Then
GetColor = "Blue"
ElseIf Split(s, vbCrLf)(1) = 2 Then
GetColor = "Yellow"
End If
End Function
从条件格式规则调用该函数:
表达式为:GetColor([Col8])="Blue"
表达式为:GetColor([Col8])="Yellow"