[英]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
返回
Null
问题是黑色背景也会返回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.