20230611 excel按鼠标列内容间隔设置背景色

发布时间 2023-06-12 00:01:04作者: meiyangsz

在经常处理大量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文件,都可以用啦。

缺点是,如果原本有背景色,会被覆盖。我想了一下,如果要能恢复到以前颜色,还挺麻烦的,算了,就这样吧,人不能太贪心。