目前正试图帮助on this question - 但偶然发现了一个非常奇怪的问题:
尝试在重叠范围上添加条件格式时(在VBA中),Excel 2007会生成错误1004或错误9(下标超出范围)错误。我设法把错误的代码煮到了这个:
Sub Produce1004() Cells.FormatConditions.Delete Range("A1").FormatConditions.Add Type:=xlExpression, Formula1:="=1" Range("A1:A2").FormatConditions.Add Type:=xlExpression, Formula1:="=1" Range("A1:A2").FormatConditions(Range("A1:A2").FormatConditions.Count).Font.ColorIndex = 7 End Sub Sub ProduceError9() Cells.FormatConditions.Delete Range("A1:A3").FormatConditions.Add Type:=2, Formula1:="=1" Range("A1:A2").FormatConditions.Add Type:=2, Formula1:="=1" Range("A1:A2").FormatConditions.Add Type:=2, Formula1:="=1" Range("A1:A2").FormatConditions(Range("A1:A2").FormatConditions.Count).Font.ColorIndex = 3 End Sub
它是导致错误的两个潜艇中的最后一行。该错误仅发生在Excel 2007中,它在2010年运行良好。
有人知道解决方法吗?
答案 0 :(得分:0)
我可以在Produce1004()中看到问题:
A1有2种格式条件,A2有1格式条件。
范围(“A1:A2”)。FormatConditions.Count给出A1的计数,A2的FormatConditions(2)不存在,因此出错。
但对于ProduceError9(),A1和A2的格式条件数相同。
通过一些实验,我可以通过推断范围以格式条件存储来解释这一点(设置[A1] .FormatCondition(3)的字体也失败)。 必须更改格式条件定义范围的格式。
据推测,Excel 2010通过动态拆分格式条件来改善这种情况。