如何使用VBA设置Excel单元格的背景颜色?

29
作为 VBA 程序的一部分,我需要根据某些单元格的值将它们的背景颜色设置为绿色、黄色或红色(基本上是一个健康监控,其中绿色表示正常、黄色表示边缘状态、红色表示危险状态)。
我知道如何设置这些单元格的值,但是如何设置背景颜色呢?
5个回答

61

您可以使用以下任意一种方法:

ActiveCell.Interior.ColorIndex = 28
或者
ActiveCell.Interior.Color = RGB(255,0,0)

6
在第一个例子中,你是如何知道ColorIndex所指向的颜色是哪个? - awe
2
@awe - 这里有颜色和数字的相关信息:https://msdn.microsoft.com/zh-cn/library/cc296089(v=office.12).aspx - grahamesd

13

这是一个使用宏录制器的完美例子。打开录制器并通过用户界面设置单元格的颜色。停止录制并查看宏。它会生成一堆冗余代码,但也会显示出适用于你要完成的任务的语法。剥离掉不需要的内容,并修改(如果需要)剩下的内容。


1

或者你可以选择不编写代码,而是使用Excel中的“条件格式化”功能,根据单元格值设置背景颜色和字体颜色。

这里只有两个变量,所以将默认值设置为黄色,然后在值大于或小于阈值时进行覆盖。


这就是我一直在寻找的东西。 - undefined

1

进行快速的“记录宏”操作,以查看所需颜色的颜色编号(黄色高亮为65535)。然后删除代码并输入。

Sub Name()
Selection.Interior.Color = 65535 '(your number may be different depending on the above)
End Sub

1
也许可以解释一下为什么和如何使用数字字面量来替换RGB(,,)结构,还可以用十六进制表示字面量Selection.Interior.Color = &H00FFFF,其中每对十六进制数字分别定义了红色、绿色和蓝色的值,范围在&H00&HFF之间。 - Léa Gris

-4

如果你使用 Function,它是不起作用的,但如果你使用 Sub,则可以。然而,你不能使用公式从单元格调用一个 Sub。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接