【发布时间】:2016-03-28 00:37:41
【问题描述】:
我有一个用于格式化标题的简单宏,但我想更改颜色。
这是一个包含我要更改的 .color 属性的 sn-p:
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 13434879
.TintAndShade = 0
.PatternTintAndShade = 0
End With
13434879 是我在录制宏时从调色板中选择的浅黄色。现在我想改成中等灰色,但我在任何地方都找不到这些值的索引。所有搜索都指向一个 .colorindex 属性,其值为 1-56。但是上面显示的这个 8 位属性没有。
更新:我找到了一个第三方链接,可以解决我最初寻找值的问题。所以我会调整它并问这个问题:微软是否在任何地方提供这些值?在任何指南或教程中?如果他们在我录制宏时选择使用此属性,我希望他们在某处解释了此属性的值。从 RGB 到这些值的任何转换?
【问题讨论】:
-
你能用 RGB 值代替吗?
-
看来我可以——但是我对 VBA 的了解非常基础,在搜索此属性值之前我不知道 RGB 属性。当我使用录制宏功能时,这是微软写的脚本,所以我认为这是定义颜色的常用方法。
-
我只是认为 RGB 可以让您更轻松地指定颜色。这是有关 RGB 功能的 MSDN 页面的链接。 link
-
RGB 是要走的路,因为
ColorIndex(IIRC) 取决于用户的调色板,它因用户或机器而异(或可能不同) -
Color采用 Long 类型的参数,这是RGB()函数的返回值,因此如果您想调整实际颜色,通常使用.Color = RGB(a, b, c)会更容易。颜色有一些内置常量,例如 vbWhite、vbBlue、vbYellow 等,但它们非常有限。