学习VBA,报表做到飞 第五章 5.7 Worksheet_SelectionChange事件

第五章 事件篇

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

标签:报表   事件   最大值   变量   语句   红色   区域   蓝色   地址   工作

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top