在上一课中,我们考虑了与整本书相关的事件。现在我们将重点关注与单个工作表相关的事件。
要对单个工作表执行基于事件的指令,请在编辑器中选择该工作表,然后选择 Worksheet:
默认情况下将添加 SelectionChange 事件。每当范围内容发生更改时都会触发此事件:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub
例如,以下代码将填充颜色添加到一个或多个选定的单元格,并在先前选定的范围发生更改时自动从该范围中删除填充颜色:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static previous_selection As String If previous_selection <> "" Then '从之前的选择中删除背景颜色: Range(previous_selection).Interior.ColorIndex = xlColorIndexNone End If '将背景颜色添加到当前选择: Target.Interior.Color = RGB(181, 244, 0) '保存当前选择的地址: previous_selection = Target.Address End Sub
激活工作表时会发生此事件:
Private Sub Worksheet_Activate() End Sub
当激活另一个工作表时会发生此事件:
Private Sub Worksheet_Deactivate() End Sub
双击工作表单元格时会发生此事件:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) End Sub
该事件在工作表上单击鼠标右键之前发生:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) End Sub
每当计算或重新计算工作表中的数据时,都会发生此事件:
Private Sub Worksheet_Calculate() End Sub
每当给定工作表上的单元格内容发生更改时,就会发生此事件:
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
单击链接(超文本)时会发生此事件:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) End Sub
要在没有任何事件的情况下执行代码,请将其插入两行代码之间,如下所示:
Application.EnableEvents = False '=> 禁用事件 '一些说明... Application.EnableEvents = True '=> 重新启用事件