我想在Excel中编写一个宏,如果满足以下条件,则会突出整行绿色:
Emergency Type (Column B) = """"
In Window (Column N) = "On time"
Status (Column O) = "Successful"
范围是动态的,但就本例而言,它是A2:P236
我将不胜感激任何帮助。感谢。
答案 0 :(得分:2)
编程?试试这个:
Sub ApplyConditionalFormatting()
Dim applyto As Range
Set applyto = Range("A2:P236") 'you can make this dynamic
Range("A2").FormatConditions.Add Type:=xlExpression, Formula1:= _
"=AND($B2="""",$N2=""On Time"",$O2=""Successful"")"
With Range("A2").FormatConditions(1)
.SetFirstPriority
With .Interior
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
End With
.ModifyAppliesToRange applyto
.StopIfTrue = False
End With
End Sub
HTH。
答案 1 :(得分:0)
使用Excel的条件格式设置功能。使用基于公式的格式。 您的公式应如下所示:
=(INDIRECT(ADDRESS(ROW(), 2))="""""") *
(INDIRECT(ADDRESS(ROW(), 3))="On time") *
(INDIRECT(ADDRESS(ROW(), 4))="Successful")
这将选择当前行的列X:
=INDIRECT(ADDRESS(ROW(), X))
没有必要在条件格式化中使用INDIRECT,但它使得活动变得更容易,因为Excel在条件格式化以及复制和过去操作方面存在一些“问题”。
这确保只有在满足所有条件时才返回true:
= bool * bool
根据Conditional formatting using AND() function,无法在条件格式中使用AND()。但是乘以布尔值是可能的,并且就像魅力一样。