TOP

VBA-第 11.2 课。工作表事件(Worksheet 事件)

在上一课中,我们考虑了与整本书相关的事件。现在我们将重点关注与单个工作表相关的事件。


Worksheet_SelectionChange(打开工作簿)

要对单个工作表执行基于事件的指令,请在编辑器中选择该工作表,然后选择 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

Worksheet_Activate(工作表激活事件)

激活工作表时会发生此事件:

Private Sub Worksheet_Activate()

End Sub

Worksheet_Deactivate(工作表停用事件)

当激活另一个工作表时会发生此事件:

Private Sub Worksheet_Deactivate()

End Sub

Worksheet_BeforeDoubleClick(单元格上的双击事件)

双击工作表单元格时会发生此事件:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_BeforeRightClick(右键单击之前的事件)

该事件在工作表上单击鼠标右键之前发生:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_Calculate(工作表计算事件)

每当计算或重新计算工作表中的数据时,都会发生此事件:

Private Sub Worksheet_Calculate()

End Sub

Worksheet_Change(单元格内容更改事件)

每当给定工作表上的单元格内容发生更改时,就会发生此事件:

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Worksheet_FollowHyperlink(链接点击事件)

单击链接(超文本)时会发生此事件:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

End Sub

暂时停用所有活动

要在没有任何事件的情况下执行代码,请将其插入两行代码之间,如下所示:

 Application.EnableEvents = False '=> 禁用事件
 '一些说明...
 Application.EnableEvents = True '=> 重新启用事件