Excel工作表事件(1)

在VBA中事件是指对象可以辨认的动作,用户可以指定VBA代码来对这些动作做出响应。Excel可以监视多种不同类型的事件,例如Excel中的工作表、工作簿、应用程序、图表工作表、透视表和控件等对象都可以响应事件,而且每个对象都有多种相关的事件。
事件过程作为一种特殊的Sub过程,在满足特定条件时被触发执行,如果事件过程包含参数,系统会为相关参数赋值。事件过程必须写入相应的模块中才能发挥其作用。
例如下面代码为工作表(Worksheet)事件过程须写入相应的工作表模块中,只有过程所在工作表的行为可以触发该事件代码。此过程为SelectionChange事件代码,工作表选中区域发生变化将触发此过程。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

  • 如何在VBE中插入过程代码?
    在ExcelHome论坛的求助贴中,经常看到如下这样的代码,这个代码功能没有任何问题,但是从代码可以得知这位作者花了不少时间输入这些代码。VBE的代码编辑器自动完成功能并不完善,完全不能和主流开发语言的IDE相提并论,下面这样的代码基本上都是一个个字符输入的,这样的操作除了效率比较差外,更大的潜在问题是笔误可以导致语法错误,这样的错误很难调试和定位。
Private Sub worksheet_selectionchange(ByVal target As Range)
    MsgBox target.Address
End Sub

其实系统对象事件代码的正确输入方式是这样的。在【工程资源浏览器】对话框中双击工作表对象,右侧将打开该对象的代码对话框;在对话框顶部左侧单击【对象】组合框展开按钮,在下拉列表中单击【Worksheet】,如下图所示。
在这里插入图片描述
此时代码窗口中将自动插入如下的SelectionChange事件代码过程框架,如下图所示。
在这里插入图片描述
【对象】组合框选中Worksheet之后,默认插入的是electionChange事件代码过程框架,如果需要使用其他事件代码,可以单击右侧的【事件】组合框,在下拉列表中选择相应的事件名称。
在这里插入图片描述

采用上述方法输入的事件过程代码框架,不仅仅是代码美观(大小规范),而且可以确保代码的正确性。

发布了107 篇原创文章 · 获赞 49 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/taller_2000/article/details/104535385