我在Excel 2013中使用VBA,遇到了一个关于设置优先级的问题。我正在尝试 * 更改某个范围中条件格式的优先级 *。End If之前的最后一行是我遇到问题的地方。到目前为止,它只插入到#1位置,而不是插入到#2位置。我尝试按照Microsoft的文档进行操作,如本页-〉
https://msdn.microsoft.com/en-us/library/office/microsoft.office.interop.excel.formatcondition.priority.aspx
以及其他显示示例的有用页面-〉
https://blogs.office.com/en-us/2005/10/14/conditional-formatting-using-vba-some-examples/
但这两种方法最终都没有奏效。
Range("F6:F9").Select
If Selection.FormatConditions(2).Interior.TintAndShade = 0.799981688894314 Then
Else
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MATCH($F$3,$H$6:$H$9,FALSE)"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
[...]
***Selection.FormatConditions(1).Priority = 2***
End If
3条答案
按热度按时间shstlldc1#
我使用包含值1、2、3、4的条件格式范围进行测试,并使用以下代码:
则下面的语句返回2:
sczxawaw2#
我找到了一个解决方法!不要尝试将新格式插入到#2位置,而是先将新格式设置到#1位置,* 然后 * 将#2位置设置到#1,然后将新格式向下移动到#2位置。基本上,移动其他所有内容,它就会自行处理。
dgtucam13#
这样就可以了: