当前位置: 首页 > news >正文

VBA提高篇_ 22 事件处理

文章目录

  • 1.事件编程
  • 2.常用工作簿事件名称与对应处理过程名称示例
  • 3. 事件编程的步骤
  • 4.工作簿事件
    • 4.1 Open
    • 4.2 BeforeClose
    • 4.3 NewSheet
  • 5.工作表事件
  • 6.变量和过程函数的作用域

1.事件编程

写在事件发生地(对应工作簿或工作表)
在这里插入图片描述

2.常用工作簿事件名称与对应处理过程名称示例

在这里插入图片描述

3. 事件编程的步骤

1. 找到该事件所在对象,双击打开代码页
2. 按照VBA规定,为该过程正确命名

4.工作簿事件

4.1 Open

4.2 BeforeClose

Private Sub Workbook_BeforeClose(Cancel As Boolean)MsgBox "别忘记备份数据! 再见"
End Sub

4.3 NewSheet

Private Sub Workbook_NewSheet(ByVal Sh As Object)Sh.Range("B2") = "工号"Sh.Range("D2") = "姓名"Sh.Range("F2") = "年龄"With Sh.Range("B4") = "参与项目".Range("C4") = "主要职责".Range("D4") = "有效工时".Range("E4") = "业绩评价".Range("F4") = "进入日期".Range("G4") = "退出日期"End WithSh.Range("B2,D2,F2,B4:G4").Font.Bold = TrueWith Sh.Range("B4:G30").Borders(xlEdgeLeft).LineStyle = xlContinuous.Borders(xlEdgeTop).LineStyle = xlContinuous.Borders(xlEdgeBottom).LineStyle = xlContinuous.Borders(xlEdgeRight).LineStyle = xlContinuous.Borders(xlInsideVertical).LineStyle = xlContinuous.Borders(xlInsideHorizontal).LineStyle = xlContinuousEnd WithEnd Sub

5.工作表事件

SelectionChange:每当一个用户选中一个新的单元格的时候,
SelectionChange就会被触发(Target刚被选中的单元格对象)
Range.EntireRow/EntireColumn(整行或整列)
封装事件代码:工作表都可以调用 / 透明色 :XlNone

Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.Color = xlNoneTarget.EntireRow.Interior.Color = vbCyanTarget.EntireColumn.Interior.Color = vbCyanEnd Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)Call 模块1.highlight1(Target)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim r As Range, i As Long, k As IntegerSet r = Target.Cells(1, 1)If r.Row > 3 And (r.Column = 5 Or r.Column = 7) Thenk = MsgBox("确定跳转?", vbYesNo)If k = vbYes Theni = 4Do While Trim(Cells(i, 2)) <> ""If Trim(Cells(i, 2)) = Trim(r.Value) ThenCells(i, 2).SelectEnd IfLoopEnd IfEnd IfEnd Sub

6.变量和过程函数的作用域

在这里插入图片描述

http://www.lryc.cn/news/12875.html

相关文章:

  • 【蓝桥杯集训·周赛】AcWing 第91场周赛
  • 【人工智能AI】三、NoSQL 实战《NoSQL 企业级基础入门与进阶实战》
  • platform 总线
  • 2023第10届生物发酵展3月30-4月1号山东济南开展,参观路线来了
  • RK356x U-Boot研究所(命令篇)3.6 fdt命令的用法
  • 2023年社工工资多少钱一月 能领多少补贴
  • 面试攻略,Java 基础面试 100 问(十一)
  • 接口测试(Fiddler工具)
  • Debian/Ubuntu 安装和使用 perf 调试工具
  • 【Python语言基础】——Python NumPy 数组连接
  • 解决IDEA报错:无效的目标发行版: 17
  • Redis第四讲
  • Linux Ubuntu 软件安装与卸载
  • metasploit穷举模块
  • day35 贪心算法 | 435、无重叠区间 763、划分字母区间 56、合并区间
  • C++Primer15.5节练习
  • 【日常点滴019】Python制作流浪气球游戏(导弹射击类)
  • effective c++阅读之旅---条款29
  • Android system — 进程生命周期与ADJ
  • vue3+ts+node个人博客系统(三)
  • Python第三方模块
  • 怎样查询PMP成绩?
  • 说说变量 __name__ 和它可能取到的一个值 __main__
  • 软考高级-信息系统管理师之整体管理(最新版)
  • JVM学习篇垃圾收集器ParNewCMS与底层三色标记算法详解
  • 基于FFmpeg和Screen Capturer Recorder实现屏幕和声音的录制
  • 猿人学14题详解
  • Allegro如何快速把推挤的走线变平滑操作指导
  • nginx基础学习
  • 【HDFS】FsDatasetImpl#recoverClose方法