
Excel工作表事件(5)- SelectionChange事件
示例代码如下:
发布日期:2021-05-06 08:33:46
浏览次数:22
分类:精选文章
本文共 1712 字,大约阅读时间需要 5 分钟。
Excel工作表SelectionChange事件也是最常用的事件代码之一,通俗的讲工作表选中的单元格发生变化时,此事件将被激活。
SelectionChange事件的过程框架如下,其中参数Target是Range类型变量,代表工作表中被选中的单元格区域。Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' Your codeEnd Sub
需求如下:如下图中的数据表,第一列为月度,需要实现当选中表格中某个单元格时,与该行相同月份的表格区域设置黄色背景色,例如:图中选中的为D9单元格,该行月度为2020/05
,第7行至第11行均为相同的月度,设置黄色背景色。当选中其他月度的表格区域时,清楚当前的背景色,并设置新区域的背景色。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rngMth As Range, c As Range, rngTab As Range Set rngTab = Range("A2:J46") If Target.Count = 1 Then If Not Intersect(Target, rngTab) Is Nothing Then If Target.Interior.ColorIndex = 6 Then Exit Sub Else rngTab.Interior.Pattern = xlNone For Each c In Range([a2], Cells(Rows.Count, 1).End(xlUp)) If c.Value = Cells(Target.Row, 1).Value Then If rngMth Is Nothing Then Set rngMth = c Else Set rngMth = Union(rngMth, c) End If End If Next c If Not rngMth Is Nothing Then rngMth.Resize(, rngTab.Columns.Count).Interior.ColorIndex = 6 End If End If End If End IfEnd Sub
【代码解析】
第3行代码取得表格区域,不含表头。 第4行代码判断选中的是单个单元格,才执行后续操作。 第5行代码判断激活单元格是否包含在表格区域中。 第6行代码判断激活单元格的背景色,如果已经是黄色,说明选中的单元格在着色区域中,无需处理。 第7行代码退出事件过程。 第9行代码清空表格区域的背景色。 第10~18行代码循环遍历第一列单元格。 第11行代码判断单元格中月度值是否与激活单元格所在行相同。如果相同,则将单元格合并到rngMth
对象变量中。 如果rngMth
对象变量为空,则使用第13行代码赋值,否则使用第15行代码合并单元格区域。 第19行代码判断rngMth
对象变量是否为非空。 第20行代码设置具有相同月度值的行的背景色,rngMth
对象变量为第一列相关单元格Range对象,使用Resize将该区域的列进行扩展,rngTab.Columns.Count
为表格区域的列数。 发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月09日 09时14分20秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
验证码的简单实现
2019-03-04
JSP 入门学习
2019-03-04
JSP,EL 和 JSTL 一篇文章就够了
2019-03-04
(延迟初始化)Lazy 初始化
2019-03-04
(SpringMVC)springMVC.xml 和 web.xml
2019-03-04
Oracle 学习一篇文章就够了(珍藏版)
2019-03-04
一篇文章带你搞定 Oracle 的体系结构
2019-03-04
Oracle 单行函数
2019-03-04
一篇文章带你搞定 OAuth 2.0 的四种方式
2019-03-04
一篇文章带你搞定官方推荐 Stack 的替代品 双端队列 Deque
2019-03-04
(LeetCode)Java 求解搜索旋转排序数组
2019-03-04
(模拟数组)Java 求解螺旋矩阵 II
2019-03-04
Burpsuite-02-设置JVM内存大小与解决页面显示文字乱码错误
2019-03-04
Python学习:字符串
2019-03-04
计算几何(旁切圆) - Ex-circles - UVA 11731
2019-03-04
DP - Tickets - HDU - 1260
2019-03-04