TintAndShade和PatternTintAndShade在Excel 2003中

我将TintAndShadeTintAndShade添加到Excel 2007 vbamacros。 一位同事在Excel 2003中试用了这些命令,发现这些命令在那里不起作用。

那么我怎样才能将下面的代码转换成在Excel 2003中工作的东西呢?

 With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 5296274 .TintAndShade = 0 .PatternTintAndShade = 0 End With 

需要转换的行是:

  .TintAndShade = 0 .PatternTintAndShade = 0 

注:我用这个改变单元格属性

TintandShade只适用于Excel 2003中的形状。单元格被标准难看的颜色卡住。 尽pipe如此,你可以使你的代码有条件的基于版本。

  With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 5296274 If Application.Version >= 12 then .TintAndShade = 0 .PatternTintAndShade = 0 End If End With 

.PatternTintAndShade是在2007版中添加的,因此在2003年根本不可用

.TintAndShade不适用于2003年的范围(只有形状)

也就是说,将这些设置为0会使其效果无效,所以除非有什么不是你告诉我们的,否则根本就不需要使用它们。

编辑

虽然logging可能是有用的,但它往往会产生比您所需要的更多的代码,特别是在设置格式等时它可以在不同的版本中生成不同的代码。 所以用它作为指导,而不是福音。

例如在一个范围上设置填充颜色(使用工具栏上的颜色)

Excel 2010

 Sub Macro1() With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub 

Excel 2003(并在2010年运行此macros产生与2003年相同的结果)

 Sub Macro1() With Selection.Interior .ColorIndex = 6 .Pattern = xlSolid End With End Sub