EXCEL基本事件

上传人:ni****g 文档编号:456692455 上传时间:2022-12-21 格式:DOC 页数:6 大小:222KB
返回 下载 相关 举报
EXCEL基本事件_第1页
第1页 / 共6页
EXCEL基本事件_第2页
第2页 / 共6页
EXCEL基本事件_第3页
第3页 / 共6页
EXCEL基本事件_第4页
第4页 / 共6页
EXCEL基本事件_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《EXCEL基本事件》由会员分享,可在线阅读,更多相关《EXCEL基本事件(6页珍藏版)》请在金锄头文库上搜索。

1、第X课EXCEL基本事件1 什么是事件 事件是一个对象可以辨认的动作,像单击鼠标或者按下某个键等等,并且可以编写某些代码针对此动作做出响应。用户做动作或者程序代码的结果都可能导致事件的发生。在VBA中,可以激发事件的用户动作包括:切换工作表、选择单元格和单击鼠标等几十种。事件发生时,将执行包含事件过程中的代码。若用户没有定义某事件所调用的过程,那么当发生该事件时,就不会产生任何反应。2 Excel中事件的分类 Excel提供了非常多的事件,主要可以分为以下几类:(1)工作簿事件 工作簿事件发生在特定的工作簿中,如Open(打开工作簿)、BeforeClose(关闭工作簿之前)和SheetAct

2、ive(激活任何一张表)等。工作簿事件的代码必须在Thiswork对象代码模块中编写。(2)工作表事件 工作表事件发生在特定的工作表中,如activate(激活工作表)、change(更改工作表中的单元格)和SelectionChange(工作表上的选定区域发生改变)等。工作表事件的代码必须在对应工作表的代码模块中编写。(3)窗体、控件事件 新建的用户窗体及窗体上的控件可以响应很多事件,如Click(单击)、Change(控件内容更改)等,这类事件的代码必须编在相应的用户窗体代码模块中。图表事件 图表事件针对某个特殊的图表产生,例如Slect(选中了图表中的某个对象)和SeriesChange

3、(改变了系列中某个数据点的值)。不与对象关联的事件 这类事件只有两个,分别是Online和Okey,根据时间和按钮来产生这两个事件。3 工作薄事件 当工作薄更改,工作薄中任何工作表更改,加载宏更改或数据透视表更改时,都将引发工作薄事件。若要查看工作薄事件,可以双击“工程资源管理器”(excel工作环境下按组合键“Alt+F11”打开)窗口中的“ThisWorkBook”对象,打开“代码编辑器”窗口,在“过程”下拉列表框中选择事件名称。中的工作薄事件很多,下面选用几个常用事件进行简单介绍,读者若用到其他工作薄事件可查阅相关文献和excel帮助文件。(1)Open事件 打开工作薄时,将产生此事件。

4、Workbook_Open事件只在工作薄打开时产生,在下一次打开之前不再发生此事件。此事件中可以写入一些只需执行一次的代码,比如如果需要在每次打开文件时在“Shee1”工作表的A列中记录文件打开时间,则应该使用此事件,代码如下:Private Sub Workbook_Open() Worksheets(Sheets1) . Range(A1048576) . End(xlUp) .offset(1,0) .Value=VBA.now End Sub 对系统设置进行修改的代码不应编写在这个事件中,应写入Workbook_Activate事件中,orkbook_Activate事件紧随在Work

5、book_Open事件后面发生。(2)BeforeClose事件 在关闭工作薄之前,先产生此事件。若该工作薄已经更改过,则本事件在询问用户是否保存更改之前产生,其事件处理代码格式如下:Private Sub Workbook_BeforeClose(Cancel As Boolean) 当事件产生时,参数Cancel为False。如果该事件将Cancel设为True,则停止对工作薄的关闭操作,工作薄仍处于打开状态。 一般情况下,只应在事件中加上以下功能,而不应将系统的设置或者恢复代码放在此处。不显示是否保存修改对话框而保存保存工作薄的任何修改并放弃保存工作薄的任何修改,直接退出时代码如下:Pr

6、ivate Sub Workbook_BeforeClose(Cancel As Boolean) Me.saved=True在程序中设置标志变量,控制用户直接按窗口上的“关闭”按钮退出系统,只有通过代码设置标志变量为对应值才允许退出系统,具体代码如下:Private Sub Workbook_BeforeClose(Cancel As Boolean) If bFlag=False Then Cancle=Ture(2)Activate事件 激活一个工作薄时产生该事件。所谓激活工作薄包括以下两种情况:工作薄打开时,在Open事件之后发生该事件;从另一工作薄切换到本工作薄时发生该事件;工作簿的

7、Open事件可能被用户跳过,所以应该将系统设置的初始代码放在Activate事件中。下例通过工作薄的Activate事件完成调用自定义菜单、隐藏工具栏等设置,其代码如下:Private Sub Workbook_Activate()Application.ScreenUpdating=FalseApplication.Cursor=xlDefaultApplication.Caption=学生成绩管理系统Application.Caption=Application.Commandbars(Toolbar list).Enabled = FalseApplication.Commandbars

8、(Standard).Visible = FalseApplication.Commandbars(Formatting).Visible = FalseApplication.DisplayFormulabar = FalseApplication.DisplayStatusBar = TureActiveWindow.DisplayWorkbookTabs = FalseHideBarMyBar_MenuSheets(主界面).ScrollArea = A1:M38Sheets(主界面).ActivateApplication.ScreenUpdating = TrueEnd Sub(2)

9、 NewSheet事件 在工作薄中新建工作表时产生此事件,其事件处理代码格式如下:Private Sub Workbook_Newsheet(ByVal Sh As Object)例如,在Excel中新建工作表时默认取名为Sheet后面加上一个数字,使用以下代码可以为新建的工作表生成中文名称。Private Sub Workbook_Newsheet(ByVal Sh As Object)n=Workheets.CountIf TypeName(Sh)=Workheets Then Sh.Name=工作表n End If End sub 程序通过Worksheets.Count获取当前工作的数

10、量,然后判断新建表的类型。如果是工作表,则对新建的工作表进行命名。(2)BeforeSave事件保存工作薄之前产生此事件,其事件处理代码格式如下:Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,Cancle As Boolean) 事件过程中有两个参数,如果显示“另存为”对话框,则参数SaveAsUi为True。参数cancel的值当事件产生时为False,如果该事件过程将本参数设为True,则该过程执行结束之后不保存工作薄。针对该事件的两个参数,该事件一般可以完成以下功能: 禁止文件保存,但可以对原文件的修改进行保存; 禁止

11、保存修改,使保存与另存为功能都失效。例如,以下代码在保存工作薄之前询问用户是否保存文件。在保存工作薄之前产生此事件,那么只要在该事件中写入一行代码就可以完全禁止文件被保存,而且连另存为对话框也不显示。Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,Cancle As Boolean)If SaveAsUI=True Then Cancel=True 禁止另存为End subPrivate Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,Cancle As Boolean)Ca

12、ncel=True 禁止保存修改End sub在禁止保存修改时应配合在BeforeClose事件中写入代码才能达到完美效果。Private Sub Workbook_BeforeClose(Cancle As Boolean) Me Saved=TrueEnd sub4 工作表事件 在Excel应用程序中,要控制用户在工作表中的操作,就需要为工作表事件编写代码。工作表事件是开发Excel应用程序时应用最多的。若要查看工作表的事件过程,可双击“工程资源管理器”窗口中的一个工作表对象(例如“Sheet1”),打开“代码编辑器”窗口,在“过程”下拉列表框内选择事件名称。Excel中的工作表事件如表1

13、所示:表 1 Excel中的工作表事件及其激发时间事件激发时间Activate激发工作表时BeforreDoubleClick双击工作表前BeforreRightClick在工作表上单击右键时Calculate对工作表重新进行计算之后Change更改工作表中的单元格活外部链接引起单元格变化时Deactivate工作表从活动状态转为非活动状态时FollowHyperlink单击工作表上的任意超链接时PivotTableUpdate在工作薄中数据透视表更新之后SelectionChange工作表上的选定区域发生改变时工作表事件发生在工作表被激活、用户修改,以及更新工作表上的单元格或数据透视表时。例

14、如,以下代码将在工作表重新计算后将A列到H列的大小调整到合适状态。Private Sub Worksheet_Calculate() Columns=(A:H).AutoFitEnd sub 注意:在一个工作薄中,一般都有多张工作表。工作表事件必须编写在对应的工作表对象中,操作该工作表时才会执行对应的事件代码。例如在“Sheet1”工作表的代码模块中编写的事件代码不会在“Sheet2”工作表时执行。(1) Activate事件激活工作表、图表工作表或者嵌入式图表时发生此事件。例如,以下代码将在工作表被激活时对区域A1:A20进行排序。Private Sub Worksheet_Activate

15、() Range(a1:a20).Sort Key1:=Range(a1),Order :=xlAscendingEnd sub(2) Change事件当用户更改工作表中的单元格,或者外部链接引起单元格的更改时发生此事件。该事件代码格式如下:Private Sub Worksheet_Change(ByVal Taget As Range):当单元格在重新计算计算过程中更改时,将不会发生该事件。再者,可通过Worksheet对象的Change事件对单元格中录入的数据进行校检,例如,以下代码将检查工作表的 第三列,如果输入的内容不是“男”或“女”,则显示错误信息。Private Sub Worksheet_Change(ByVal Taget As Range)Selec

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号