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修改单元格背景颜色和字体颜色

代码如下:

1
2
3
4
5
6
7
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 > 11 Then,这句语句就是前面一节学到的 选择语句了,我们还记得选择语句的结构是:

if  条件  then
代码
end if

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

3、danyuan.Interior.ColorIndex = 3。这个就是我们今天要学的内容了, 翻译过来就是:单元格.背景.色彩序列=3,执行这个语句,就会把单元格变成红色。如果你想改变单元格的背景色用:单元格.Interior.ColorIndex=
如果你想改变单元格的字体的颜色:单元格.font.ColorIndex=
下面给出所有的颜色对应的序列,用来查阅:

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

分享到:

评论抢沙发

评论前必须登录!