vba修改单元格背景颜色和字体颜色

看数据总是很累的,一堆密密麻麻的.哪个数据才是我想要的呢? 比如一列里有各种各样的数据,我想知道哪些单元格的数据大于11的?又比如一列里有各种各样的数据,我想知道哪些单元格的数据大于111的?这里比较好的一种方法就是给单元格加一些色彩.看起来更直观。又或者有些人比较好色.比如觉得看绿色让他很舒服.也可以设置单元格的颜色了.在vba中一种颜色都对应着一个数字或者说序列吧. 比如红色. 它对应的序列是3. 即(ColorIndex =3)最早我们知道,一个单元格可能存在着很多属性.比如 单元格.height   表示的是这个单元格格的高度. 当设置为   单元格.height =3 时. 我们就把单元格的高度设置为3了。vba中  单元格.Interior    表示这个单元格的背景.

比如  range(“A1”).Interior   指的就是单元格 A1的背景。用  range(“A1”).Interior.ColorIndex  表示的就是A1的背景的色彩序列。如果我们要设置A1的背景的色彩为 红色,我们这样写就可以了:  range(“A1”).Interior.ColorIndex=3, 由前面知道,在vba里,每种颜色都关联着一个数字。当我们把ColorIndex设置为3的时候, 就设置为了红色了。

接下来我们用实际的代码,来做个体验。假设有这样一个表格,我们要做的就是把 >11 的表格设置为红色

vba修改单元格背景颜色和字体颜色

代码如下:

Public Sub diandian10()

For Each danyuan In Range(Range(“A1”), Range(“A100”).End(xlUp))

If danyuan.Value > 11 Then
danyuan.Interior.ColorIndex = 3
End If

Next

End Sub

运行后效果如图:

vba修改单元格背景颜色和字体颜色

我们可以看到确实单元格的背景色变成了红色

代码分析:

1, Range(Range(“A1”), Range(“A100”).End(xlUp)): 这个表示的是单元格A1到A8这个范围. 至于为什么这句不是表示A1到A100呢?  因为后面有一个 end(xlup),这个表示的是a100往上的非空单元格,这里就是a8

2,  If  danyuan.Value > 11Then  , 这句语句就是前面一节学到的 选择语句了, 我们还记得选择语句的结构是:

if  条件  then

do something

end if

这里的条件就是   danyuan.Value > 11 , 当满足条件时,就会执行do something

3, danyuan.Interior.ColorIndex = 3  : 这个就是我们今天要学的内容了。 翻译过来就是: 单元格.背景.色彩序列=3

执行这个语句,就会把单元格变成红色。

如果你想改变单元格的背景色用:单元格.Interior.ColorIndex=

如果你想改变单元格的字体的颜色:单元格.font.ColorIndex=

下面给出所有的颜色对应的序列,用来查阅:

vba修改单元格背景颜色和字体颜色

分享到:

评论抢沙发

评论前必须登录!