Excel相同内容如何设置相同的背景色

时间:2024-03-05 11:27:39

 

有这样一个需求就是实现EXCEL的相同内容的背景色相同、并且内容不同的时候达到隔行变色的效果,记录下实现的效果,如果大家有什么更好的办法请给我指点一下。具体操作如下:

首先将是比较的列"2014基药编码"列数据粘贴到Sheet2中,去除重复项,完成之后的sheet2效果如下:

将sheet1 表第一列插入一个新列命名为“分组号” ,在A2 的单元格中输入条件公式:=VLOOKUP(G2,Sheet2!A:B,2,FALSE)

公式 vlookup 各列的参数用法分别是:

G2 :是比较的sheet1单元格G2 。

Sheet2!A:B: 查找的内容是sheet2的a~b列的内容。

2: 最后获得的结果是Sheet2!A:B区域获得b列的内容。

false :查找的条件 是模拟查找 还是精确查找  false 是精确查找,true 是模糊查找。

详细的用法百度。

成功之后 就会得到sheet2的值 1 ,其它单元格的内容直接 双击a2列复制公式即可。

效果如图:

选择 "视图"选项卡的”宏,单击"新建宏" 输入宏名,保存。然后在选择查看”宏“ ,打开 "宏" 编辑 窗口。点击:"编辑”按钮“。粘贴如下代码:

点击"运行" 即可实现相同内容背景色、隔行变色的效果了。代码如下:

Sub SetStyle()
Dim intFromRowNo As Long, intToRowNo As Long, intFromColNo As Long, intToColNo As Long, intCurrentID As Long
Dim intTempID As Long, intFlag As Long, intMod As Long, intColorIndex As Long

Dim IsChanged As Boolean \'组号是否变化了

intTempID = 1 \'初始组号
intFlag = 2 \'变化标示:当组号发上变化时,该标识会自增1,当标识对2取模为1时,则需要调整式样(即逢偶数的组变式样)
intFromRowNo = 2 \'起始行号
intToRowNo = ActiveSheet.UsedRange.Rows.Count \'结束行号


intFromColNo = 1 \'起始列号
intToColNo = ActiveSheet.UsedRange.Columns.Count \'结束列号

intColorIndex = 20 \'20浅绿色;15灰色;

For i = intFromRowNo To intToRowNo
\'当下一个组号与当前一样,式样不变
intCurrentID = ActiveSheet.Cells(1)(i)
IsChanged = intCurrentID = intTempID

If (IsChanged = False) Then intFlag = intFlag + 1: intTempID = intCurrentID: intMod = intFlag Mod 2

If (intMod = 1) Then ActiveSheet.Range(Cells(i, intFromColNo), Cells(i, intToColNo)).Interior.ColorIndex = intColorIndex: ActiveSheet.Range(Cells(i, intFromColNo), Cells(i, intToColNo)).Font.Bold = True

Next
End Sub