Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2537|回复: 3

跟着校长学VBA之第18集:Excel工作簿事件

[复制链接]
发表于 2013-1-12 16:56 | 显示全部楼层 |阅读模式
上一讲工作表事件,这一讲是工作簿事件。
主要是针对工作簿的一些事件进行处理。

工作簿事件代码主要是保存在内置对象的THISWORKBOOK模块中。
QQ截图20130112164528.jpg

QQ截图20130112164541.jpg

主要的工作簿事件
Activate ,激活工作簿、工作表、图表工作表或嵌入式图表时发生此事件。
新建窗口时不发生此事件。
切换两个显示同一工作簿的窗口时,将发生 WindowActivate 事件,但不发生工作簿的 Activate 事件。

AddinInstall ,当工作簿作为加载宏安装时,发生此事件

AfterSave ,在保存工作簿之后发生。

BeforeClose ,在关闭工作簿之前,先产生此事件。如果该工作簿已经更改过,则本事件在询问用户是否保存更改之前产生。

BeforePrint ,在打印指定工作簿(或者其中的任何内容)之前,发生此事件。

BeforeSave ,保存工作簿之前发生此事件。

Open ,打开工作簿时,发生此事件。

SheetChange ,当用户或外部链接更改了任何工作表中的单元格时发生此事件。
图表工作表中不发生此事件。

WindowActivate ,工作簿窗口被激活时,将发生此事件。

更多的请F1

代码范例:
  1. ‘此示例在工作表被激活时对区域 A1:A10 排序。
  2. Private Sub Worksheet_Activate()
  3.     Range("a1:a10").Sort Key1:=Range("a1"), Order1:=xlAscending
  4. End Sub
复制代码
  1. ’当工作簿作为加载宏安装时,本示例将一个控件添加到常用工具栏中。
  2. Private Sub Workbook_AddinInstall()
  3.     With Application.Commandbars("Standard").Controls.Add
  4.         .Caption = "The AddIn's menu item"
  5.         .OnAction = "'ThisAddin.xls'!Amacro"
  6.     End With End Sub
  7. End Sub
复制代码
  1. ‘下面的代码示例将在成功保存工作簿时显示一个消息框。
  2. Private Sub Workbook_AfterSave(ByVal Success As Boolean)
  3. If Success Then
  4.     MsgBox ("The workbook was successfully saved.")
  5. End If
  6. End Sub
复制代码
  1. ’本示例将 BeforeClose 事件的响应设置为保存工作簿的任何更改。
  2. Private Sub Workbook_BeforeClose(Cancel as Boolean)
  3.     If Me.Saved = False Then Me.Save
  4. End Sub
复制代码
  1. ’本示例在打印之前对活动工作簿的所有工作表重新计算。
  2. Private Sub Workbook_BeforePrint(Cancel As Boolean)
  3.     For Each wk in Worksheets
  4.         wk.Calculate
  5.     Next
  6. End Sub
复制代码
  1. ‘本示例在保存工作簿之前询问用户是否保存。
  2. Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
  3.         Cancel as Boolean)
  4.     a = MsgBox("Do you really want to save the workbook?", vbYesNo)
  5.     If a = vbNo Then Cancel = True
  6. End Sub
复制代码
  1. ’每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口。
  2. Visual Basic for Applications
  3. Private Sub Workbook_Open()
  4.     Application.WindowState = xlMaximized
  5. End Sub
复制代码
发表于 2013-1-12 17:14 | 显示全部楼层
回复

使用道具 举报

发表于 2013-1-12 22:28 | 显示全部楼层
回复

使用道具 举报

发表于 2013-8-30 14:37 | 显示全部楼层
什么时候偶能开个贴,跟着花花老师学VBA
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-22 23:30 , Processed in 0.335975 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表