繁体   English   中英

FormatConditions和内部颜色

[英]FormatConditions and Interior Color

我有一个旧的宏在Excel 2003上工作正常,但会产生Excel 2010的问题。导致问题的部分是:

If Not IsNull(someRange.FormatConditions(parActiveCondition).Interior.Color) Then
    locVisibleColor = someRange.FormatConditions(parActiveCondition).Interior.Color
End if

其中parActiveCondition是在活性条件格式数someRange

当背景被选为“No Color”时, someRange.FormatConditions(parActiveCondition).Interior.Color返回

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

问题是黑色背景也会返回0.因此在Excel 2010中,似乎不再可能在黑色背景和背景颜色之间产生差异。

有人知道解决方法吗?

ps:我显然可以选择白色背景而不是“No Color”,但我宁愿不改变所有的电子表格和条件格式规则。

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

IsNull(someRange.FormatConditions(parActiveCondition).Interior.ColorIndex) 'or
IsNull(someRange.FormatConditions(parActiveCondition).Interior.TintAndShade)

什么时候

.FormatConditions(parActiveCondition).Interior.Color = 0
Option Explicit

Sub test()

Dim Color
Dim R As Integer
Dim G As Integer
Dim B As Integer

Color = ThisWorkbook.Sheets(1).Range("A1").Interior.Color


R = Color Mod 256
G = (Color \ 256) Mod 256
B = (Color \ 256 \ 256) Mod 256

ThisWorkbook.Sheets(1).Range("B1").Interior.Color = RGB(R, G, B)

End Sub

黑色返回(0,0,0)
然而,似乎“没有颜色”返回(255,255,255)(=白色)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM