Excel VBA事件——Worksheet
Worksheet工作表中常用的事件个人认为有3个:
1、Worksheet_SelectionChange:
选择改变的时候,意思是单元格的选择变化后发生的事件:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
Target就是变化后选中的单元格。
这个事件的有个比较典型的应用场景,选择改变后,将选择的单元格所在行标上颜色,也就是所谓的聚光灯:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'清除有所单元格的底色
Cells.Interior.Color = xlNone
'设置选中单元格整行的底色
Target.EntireRow.Interior.Color = 255
End Sub
EntireRow获取单元格的整行单元格。
Interior.Color单元格底色的颜色值,这个通过录制宏可以很容易的知道。
效果:
这种效果在查看数据的时候非常的方便,可以很好的避免看错行的情况。
当然这个代码是非常的简陋的,一旦表格本身单元格设置了底色的话,程序会清除掉原本的底色,改进的方案:
- 设置1个自定义名称selectrow=CELL("row"),CELL("row")能够返回当前选中单元格的行号
- 选中所有单元格,设置条件格式:
=ROW()=selectrow
- 在事件中设置工作表重新计算,因为CELL("row")在单元格选择变化的时候是不会重新计算的
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Calculate
End Sub
这样设置的聚光灯只能高亮显示1行,好处是不会清除原本的单元格底色。
2、Worksheet_Change:
这个的改变是指单元格的数据变化后发生的事件,而其实这个变化是只要单元格进入了编辑状态,再退出编辑状态的时候,就是变化了:
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
这个可以用来监控数据的变化,比如某个单元格数据是否改变成了某个目标,如果是就可以执行某种代码。
3、Worksheet_BeforeDoubleClick
这个就是对单元格进行双击,双击后正常是进入编辑状态,在进入编辑状态之前发生的事件。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
这个事件一个比较典型的应用场景是,比如某列存放了一些文件的路径,希望双击的时候打开对应的文件:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 1 Then
'第一行是标题,文件路径从第2行开始
If Target.Column = 2 Then
'存放在B列
If VBA.Dir(Target.Value, vbDirectory) <> "" Then
'文件存在的情况下,打开文件(这里举例打开Excel文件)
Workbooks.Open Target.Value
'打开文件就不需要进入编辑状态了
Cancel = True
End If
End If
End If
End Sub
工作表事件的代码是放在Sheet#里面的,如果仔细看过Workbook的事件,应该会发现其实Workbook事件里也有类似上面提到的那几个事件:Workbook_SheetSelectionChange、Workbook_SheetChange、Workbook_SheetBeforeDoubleClick。
名称里多了Sheet,这个事件的意思就是针对所有的Sheet都有效果的,使用方法差不多,可以去尝试用用。
工作表事件还有一些其他的事件,也可以去尝试用用,根据自己的实际情况选择去使用。
- WordPress 自定义 login (登录页面)CSS 样式
- [C#1] 12-特性
- HTTP Basic Authentication for RESTFul Service
- [C#2] 4-可空类型、静态类
- jquery 操作css 尺寸
- Windows 7上IIS出现http 500错误
- [C#2] 2-匿名方法
- jquery 操作css 选择器
- 主页后台源码及释义
- [C#2] 3-局部类型、属性访问器保护级别、命名空间别名限定符
- (2013.09更新)最新W3School 离线完整版CHM 电子书下载
- [C#2] 1-泛型
- .NET4.0的可扩展缓存系统
- 让WordPress 在RSS 中Feed 截断文字输出
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 维护你的请求队列,处理token异常
- 小程序数据埋点实践之曝光量
- Notification API,为你的网页添加桌面通知推送
- 点亮你的Vue技术栈,万字Nuxt.js实践笔记来了
- 小程序框架原理之渲染流程及通信流程
- Koa源码解析,带你实现一个迷你版的Koa
- 手摸手带你理解Vue响应式原理
- 手摸手带你理解Vue的Computed原理
- 10个Vue开发技巧助力成为更好的工程师(二)
- Vue源码解析,keep-alive是如何实现缓存的?
- Python每日一题
- Python 每日一题
- Python每日一题:MRO
- Python每日一题:变量交换
- Python每日一题:__new__ 与 __init__