2

目前试图帮助解决这个问题- 但偶然发现了一个非常奇怪的问题:

尝试在重叠范围(在 VBA 中)上添加条件格式时,Excel 2007 会产生错误 1004 或错误 9(下标超出范围)错误。我设法将错误的代码归结为:

子生产1004()
    单元格.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
结束子

子生产错误9()
    单元格.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
结束子

这是导致错误的两个潜艇中的最后一行。该错误仅发生在 Excel 2007 中,它在 2010 中运行良好。

有人知道解决方法吗?

4

1 回答 1

0

我可以在 Produce1004() 中看到一个问题:

A1 有 2 个格式条件,A2 有 1 个格式条件。

Range("A1:A2").FormatConditions.Count 给出 A1 的计数,A2 不存在 FormatConditions(2),因此出现错误。

但是对于 ProduceError9(),格式条件的数量对于 A1 和 A2 是相同的。

通过一些实验,我可以通过推断范围与格式条件一起存储来解释这一点(为 [A1].FormatCondition(3) 设置字体也失败)。必须更改定义了格式条件的范围的格式。

据推测,Excel 2010 通过动态拆分格式条件来改善这种情况。

于 2013-02-06T14:05:27.767 回答