Excel VBA事件

时间:2022-07-22
本文章向大家介绍Excel VBA事件,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、事件:

事件,和日常生活中的差不多,就是发生了什么事情。

在Excel里,能发生的事件很多:

  • 打开、关闭工作簿
  • 新建工作簿
  • 新建工作表
  • 激活工作表
  • 选择单元格
  • 单元格改写
  • …………

这些都是事件,其实就是平时手动操作Excel的一些动作。

在Excel VBA里提供了接口,在发生这些事件之前或者之后,让使用者可以设置一段运行的程序。

比如双击打开工作簿,可以设置运行一段程序:

上面就是一个工作簿打开事件,运行一段程序:

Private Sub Workbook_Open()
    MsgBox "工作簿打开了"
End Sub

这种格式是固定的,必须按照这种模式,Excel VBA才能识别它为一个事件,所以为了避免使用者手动输入而造成的错误,Excel VBA提供了下拉选项让使用者直接选择。

左边是选择事件的主体(Workbook),右边是这个主体具有的事件。

2、代码存放的地方:

以前写的代码都是插入一个模块,在模块里编写代码。

Excel文件一旦创建,就已经创建好了几个特殊的模块:ThisWorkbook、Sheet1(有几个工作表就会有几个Sheet#模块)。这几个模块也可以像普通的模块一样编写代码,但是一般都是存放一些事件代码,像上面的Workbook_Open,是必须放在ThisWorkbook模块里面才会有效果的。

通过名称也能大概猜到:

  • 工作簿的事件代码,必须存放在ThisWorkbook模块
  • 工作表事件的代码,必须存放在对应的Sheet#模块

这里所说的代码存放不是说一定是所有需要的代码,只是那个过程的名称必须存放在对应的模块,中间仍然可以调用普通模块的函数或者过程,而这些函数或者过程的代码可以存放在普通的模块中。

3、事件的作用:

个人认为,事件代码的作用仅仅是为了一些操作上的方便,而对于数据处理来说,作用不大。

而且事件用的不恰当,会影响Excel的运行效率,刚接触事件的可能会觉得比较好玩,建议事件的使用场所是在一些比较简单的表格里,一旦数据运算非常复杂了,尽量不要去使用。