工作表事件一览表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
W orksheet 对象事件一览表
工作表上的事件在默认情况下是可用的。若要查看工作表的事件过程,请用鼠标右键单击工作表标签,再单击快捷菜单上的“查看代码”。在“过程”下拉列表框内选择事件名称。
工作表级事件发生在工作表被激活、用户更改工作表上的单元格或数据透视表更改时。下例在工作表重新计算时就调整 A 列到 F 列的大小。
Private Sub Worksheet_Calculate()
Columns("A:F").AutoFit
End Sub
有些事件可用于将某操作取代默认的应用程序操作,或对默认操作进行一些小改动。下例捕获了右键单击事件,并在单元格区域 B1:B10 的快捷菜单中添加了新的菜单项。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _
Cancel As Boolean)
For Each icbc In mandBars("cell").Controls
If icbc.Tag = "brccm" Then icbc.Delete
Next icbc
If Not Application.Intersect(Target, Range("b1:b10")) _
Is Nothing Then
With mandBars("cell").Controls _
.Add(Type:=msoControlButton, before:=6, _
temporary:=True)
.Caption = "New Context Menu Item"
.OnAction = "MyMacro"
.Tag = "brccm"
End With
End If
Activate 事件
激活一个工作簿、工作表、图表或嵌入图表时产生此事件。
Private Sub object_Activate()
object Chart、Workbook、或者Worksheet。有关对Chart对象使用事件的详细信息,请参阅图表对象事件的用法。
说明
切换两个显示同一个工作簿的窗口时,将产生 WindowActivate 事件,但不产生工作簿的 Activate 事件。
新建窗口时不产生本事件。
示例
当激活工作表时,本示例对 A1:A10 区域进行排序。
Private Sub Worksheet_Activate()
Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscending
End Sub
Deactivate 事件
图表、工作表或工作簿从活动状态转为非活动状态时产生此事件。
Private Sub object_Deactivate()
object Chart、Workbook或者Worksheet。有关对Chart对象使用事件的详细信息,请参阅Chart 对象事件的用法。
示例
本示例当工作簿转为非活动状态时,对所有打开的窗口进行排列。
Private Sub Workbook_Deactivate()
Application.Windows.Arrange xlArrangeStyleTiled
End Sub
BeforeDoubleClick 事件
当双击某工作表时产生此事件,此事件先于默认的双击操作。
Private Sub expression_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
expression 引用在类模块中带有事件声明的Worksheet类型对象的变量。
Target 必需。双击发生时最靠近鼠标指针的单元格。
Cancel 可选。当事件发生时为False。如果事件过程将该参数设为True,则该过程执行完之后将不进行默认的双击操作。
说明
使用DoubleClick方法并不触发本事件。
用户双击单元格的边框时不触发本事件。
BeforeRightClick 事件
当用鼠标右键单击某工作表时产生此事件,此事件先于默认的右键单击操作。
Private Sub expression_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
expression 引用在类模块中带有事件声明的Worksheet类型对象的变量。
Target必需。右键单击发生时最靠近鼠标指针的单元格。
Cancel 可选。当事件发生时为False。如果该事件过程将本参数设为True,则该过程执行结束之后不进行默认的右键单击操作。
说明
与其他工作表事件相似,当指针位置在图形或命令栏(工具栏或者菜单栏)上时,右键单击不触发本事件。
示例
应用于Worksheet对象。
本示例为 B1:B10 单元格添加新的快捷菜单项。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _
Cancel As Boolean)
Dim icbc As Object
For Each icbc In mandBars("cell").Controls
If icbc.Tag = "brccm" Then icbc.Delete
Next icbc
If Not Application.Intersect(Target, Range("b1:b10")) _
Is Nothing Then
With mandBars("cell").Controls _
.Add(Type:=msoControlButton, before:=6, _
temporary:=True)
.Caption = "New Context Menu Item"
.OnAction = "MyMacro"
.Tag = "brccm"
End With
End If
End Sub
Calculate 事件
对于Chart对象,在图表对新的数据点或者更改的数据点绘制之后产生此事件。对于Worksheet对象,在对工作表进行重新计算之后产生此事件。
Private Sub object_Calculate()
object Chart或者Worksheet。有关对Chart对象使用事件的详细内容,请参阅Chart 对象事件的用法。
示例
每当工作表重新计算时,本示例就调整 A 列到 F 列的宽度。
Private Sub Worksheet_Calculate()
Columns("A:F").AutoFit