20230611 excel按鼠标列内容间隔设置背景色
在经常处理大量excel数据时,某列数据在不定数的行里重复,很希望有个功能:可以在这个参数发生变化时提示一下。到处找不到工具,只好自己动手做了一个,分享给需要的人。
功能:背景色随鼠标所在列内容发生变化时就改变。例:
A列数据内容每一行都不同,鼠标放在A列任意行,背景色就变成均匀的间隔色。
B列数据内容变化没规律,鼠标放在B列任意行,背景色跟随B列内容而变化。
实现:
1 新建一个excel文件,Alt +F11进入编程环境
2 双击模块1,在右边的代码区,写入如下代码
'把活动区域按光标所在列的值突出显示,相邻行相同值一个颜色,交替
Sub RitaColor()
Dim s1, s2 As String
Dim myRng, myrow As Range
Dim cor1, cor2, cor As Integer '交替显示的颜色
Dim intcol, intusingflag As Integer
'设置色号 19&44 黄色
cor1 = 20
cor2 = 37
intcol = ActiveCell.Column
Set myRng = ActiveCell.CurrentRegion '设当前活动单元格所在区域为要处理的区域
intusingflag = 1 '对2取余,0 cor1,1 cor2
For Each myrow In myRng.Rows
s2 = Cells(myrow.row, intcol)
If s2 <> s1 Then
intusingflag = intusingflag + 1
s1 = s2
End If
If intusingflag Mod 2 = 0 Then
cor = cor1
Else
cor = cor2
End If
'如果用colorIndex设置,不能大于56
myrow.Interior.ColorIndex = cor
'myrow.Interior.Color = cor
Next
End Sub
3 关闭代码环境,excel文件另存为可加载宏文件,如MyTool.xlam
4 excel 文件-选项-加载项,选管理-excel加载项-转到
5 浏览,找到刚刚保存的MyTool.xlam(我这里文件名为Ritasmodule),确定
6 回到excel界面,右键菜单区域,选自定义功能区
7 下拉选宏
就会出来刚刚做的代码
8 右边点击新建选项卡,右键刚新建的选项卡,修改名字,假设改为MyTool,鼠标选中新建组
9 左边选中宏中的程序名,点添加,就把这个功能添加到新定义的选项卡下了,确定
10回到excel编辑界面,菜单栏上已经有了刚刚增加的功能。以后打开别的excel文件,都可以用啦。
缺点是,如果原本有背景色,会被覆盖。我想了一下,如果要能恢复到以前颜色,还挺麻烦的,算了,就这样吧,人不能太贪心。