第五章 事件篇
5.7 Worksheet_SelectionChange事件
这是一个工作表事件,当代码所在的工作表的内容被鼠标选择时,触发该事件。
我们先来看一下这个事件的语句结构:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
与Worksheet_Change事件一样,这个事件也有一个单元格变量Target,它代表被选择的单元格。下面我们通过一个案例来学习这个事件的应用。
在下图a1单元格到d9单元格的一片区域里,我们任意选择几个数字,把最大值填充为红色,把最小值填充为蓝色,并在状态栏显示最大值和最大值单元格地址、最小值和最小值单元格地址。
375 | 401 | 349 | 334 |
395 | 435 | 440 | 381 |
489 | 432 | 337 | 393 |
330 | 322 | 324 | 370 |
390 | 412 | 377 | 447 |
369 | 405 | 453 | 438 |
497 | 358 | 379 | 475 |
474 | 377 | 462 | 393 |
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[a1:d9].Interior.ColorIndex = o '先清空区域里的填充颜色
If Target.Count = 1 Then Exit Sub '如果只选择一个单元格,退出程序
Dim 最大值 As Range, 最小值 As Range
If Application.Count(Target) = 0 Then
Application.StatusBar = ""
'统计选中区域数值的个数,如果随意选了区域外的空白单元格,就把状态栏设置为空。Application.StatusBar为设置状态栏语句。
Else
zd = Application.Max(Target)'查找出最大值
Set 最大值 = Target.Find(zd, , xlValues, 1) '查找出最大值单元格
最大值地址 = 最大值.Address(0, 0) '最大值单元格的地址,如果没有(0,0),系统会显示绝对地址,如:$A$1,(0,0)会把地址中的$去掉
最大值.Interior.ColorIndex = 3 '将该单元格填充成红色
zx = Application.Min(Target) '查找出最小值
Set 最小值 = Target.Find(zx, , xlValues, 1) '查找出最小值单元格
最小值地址 = 最小值.Address(0, 0) '最小值单元格的地址
最小值.Interior.ColorIndex = 5 '将该单元格填充成蓝色
xs = "最大值:" & zd & "" & 最大值地址 & " " & "最小值:" & zx & "" & 最小值地址
Application.StatusBar = xs
'把要显示的内容赋值给变量xs,然后设置状态栏
End If
End Sub
程序运行的结果如下:
状态栏显示如下:
往期精彩回顾:
学习VBA,报表做到飞 第五章 事件篇 5.6 Worksheet_Change事件
学习VBA,报表做到飞 第五章 事件篇 5.5 Workbook_BeforePrint事件
学习VBA,报表做到飞 第五章 事件篇 5.4 Workbook_NewSheet事件
我是云飞扬,职场财会人员,愿与大家分享表格制作和数据统计分析的技巧与方法,希望大家的工作更便捷,更轻松!
页面更新:2024-04-30
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号