Excel 中的事件

术语“Excel 事件» 用于指示用户在 Excel 中执行的某些操作。 例如,当用户切换工作簿工作表时,这是一个事件。 在单元格中输入数据或保存工作簿也是 Excel 事件。

事件可以链接到 Excel 工作表、图表、工作簿或直接链接到 Excel 应用程序本身。 程序员可以创建将在事件发生时自动执行的 VBA 代码。

例如,要在用户每次切换 Excel 工作簿中的工作表时运行宏,您将创建每次发生事件时都会运行的 VBA 代码 表激活 工作簿。

如果您希望每次转到特定工作表时都运行宏(例如, Sheet1),那么 VBA 代码必须与事件相关联 启用 对于这张纸。

用于处理 Excel 事件的 VBA 代码必须放在 VBA 编辑器窗口中的相应工作表或工作簿对象中(编辑器可以通过单击打开 Alt + F11键)。 例如,每次在工作表级别发生特定事件时应执行的代码应放置在该工作表的代码窗口中。 如图所示:

在 Visual Basic 编辑器中,您可以查看在工作簿、工作表或图表级别可用的所有 Excel 事件集。 打开所选对象的代码窗口,然后从窗口顶部的左侧下拉菜单中选择对象类型。 窗口顶部的右侧下拉菜单将显示为此对象定义的事件。 下图显示了与 Excel 工作表关联的事件列表:

Excel 中的事件

在右侧下拉菜单中单击所需的事件,一个过程将自动插入到该对象的代码窗口中 小组. 在程序的开头 小组 Excel 会自动插入所需的参数(如果有)。 剩下的就是添加 VBA 代码以确定在检测到所需事件时过程应执行的操作。

例如:

在以下示例中,每次选择一个单元格时 B1 在工作表上 Sheet1 出现一个消息框。

要执行此操作,我们需要使用工作表事件 选择_改变,每次选择的单元格或单元格范围发生更改时都会发生这种情况。 功能 选择_改变 作为参数接收 目标 对象 - . 这就是我们知道选择了哪个单元格范围的方式。

活动 选择_改变 任何新选择都会发生。 但是我们需要仅在选择单元格时执行一组操作 B1. 为此,我们将仅在指定范围内跟踪事件 目标. 在如下所示的程序代码中是如何实现的:

'在当前工作表上选择单元格 B1 时显示消息框的代码。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) '检查单元格 B1 是否被选中 If Target.Count = 1 And Target.Row = 1 And Target.Column = 2 Then '如果单元格 B1 被选中,则执行以下 MsgBox "You have选择了一个单元格 B1" End If End Sub

发表评论