格式条件和内部颜色

ass*_*ias 2 excel vba excel-2003 excel-2010

我有一个旧的宏,它在 Excel 2003 上运行良好,但在 Excel 2010 上产生了问题。导致问题的部分是:

If Not IsNull(someRange.FormatConditions(parActiveCondition).Interior.Color) Then
    locVisibleColor = someRange.FormatConditions(parActiveCondition).Interior.Color
End if
Run Code Online (Sandbox Code Playgroud)

parActiveCondition的活动条件格式编号在哪里someRange

当背景选择为“无颜色”时,someRange.FormatConditions(parActiveCondition).Interior.Color返回

  • Null 在 Excel 2003 中
  • 0 在 Excel 2010 中

问题是黑色背景也返回 0。所以在 Excel 2010 中似乎不再可能区分黑色背景和无背景颜色。

有人知道解决方法吗?

ps:我显然可以选择白色背景而不是“无颜色”,但我不想更改所有电子表格和条件格式规则。

bre*_*tdj 5

您可以使用布尔辅助检查,例如

IsNull(someRange.FormatConditions(parActiveCondition).Interior.ColorIndex) 'or
IsNull(someRange.FormatConditions(parActiveCondition).Interior.TintAndShade)
Run Code Online (Sandbox Code Playgroud)

什么时候

.FormatConditions(parActiveCondition).Interior.Color = 0
Run Code Online (Sandbox Code Playgroud)