Excel2002VBACh14.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Excel2002VBACh14.doc

学习微软?Excel?2002?VBA?编程和XML,ASP技术?-?CH14 (2010-11-28 17:09:24) 转载▼ 分类: 第十四章 微软Excel 2002 中的事件编程 作者:Julitta Korol 翻译:Tiger Chen Oct 21’ 2005 你如何使当用户点击工作表单元格时出现的内置快捷菜单失活?你如何在工作簿打开或者关闭之前显示一个自定义信息?你如何验证输入在单元格或者单元格区域里的数据?要想对Excel获得彻底控制的话,你必须学习如何响应事件。学习如何进行事件编程将让你贯彻你自己的功能性到Excel应用软件里去。你需要学习有关该主题的第一件事情就是,什么是事件。这里有个简单的定义: 事件是发生的东西 无需说,对象发生的事件是Excel的一部分,然而,一旦你学习了Excel中的事件知识,你将发现更容易去理解发生在Word或者其它任何微软办公软件的对象事件。事件是由对象认可的行动。 既然你知道了什么是事件,那么你需要知道事件是可以被一个应用软件用户(例如你自己),另一个程序或者系统本身引发的。因此,你如何能够引发事件呢?假设你右键单击一个工作表单元格,该具体操作将显示一个内置的工作表单元格快捷菜单,允许你快速的访问和工作表单元格相关的频繁使用的命令。但是,万一在某种情况下该内置响应不对呢?你可能想要完全不接受工作表的右键单击,或者当用户右键单击任何单元格时,单元格快捷菜单上出现一个自定义菜单。有个好消息,就是你可以使用VBA来编写代码对事件进行反应。 Excel提供了许多事件供你响应,下述对象可以响应事件: · 工作表 · 图表 · 透视表 · 工作簿 · 应用软件 通过编写时间过程,你可以决定当事件发生时发生什么。 事件过程介绍 事件过程,作为一种特殊的VBA过程,用来对特定的事件作出反应。该过程包含处理具体事件的VBA代码。有些事件只需要简单的一行代码,然而,其它的可能更复杂。事件过程拥有名称,按下述方式创建: 对象名称_事件名称() 在事件名称后面的括号里,你可以放置需要发送到过程里的参数。程序员不能更改事件过程名称。 在你编写事件过程对Excel事件作出反应之前,你需要知道: · 想要响应的具体对象和事件的名称 响应事件的对象在代码窗口的过程下拉清单里显示了一系列事件(见图14-1)。同样,你也可以使用对象浏览器找到事件名称(见图14-2)。 · 你需要放置代码的地方 有些事件在标准模块里,其它的在类模块里。然而,工作簿,图表和工作表事件对任何打开的工作表或者工作簿可用。要给一个内嵌的图表,透视表或者应用软件对象创建事件过程的话,那么你必须首先使用关键字With Events在类模块里创建一个新对象 图14-1 你可以在代码窗口找到事件名称 图14-2 你可以在对象浏览器里找到事件名称 激活和失活事件 你可以使用应用软件对象的EnableEvents属性来激活或者失活事件。如果你编写了VBA过程但是不希望有个具体事件发生,那么就将EnableEvents属性设置为False。例如,为了避免在运行过程EnterData(参见下面代码)引发Workbook_BeforeClose事件,那么在调用Workbook对象Close方法之前,设置EnableEvents属性为False。在你的程序结束之前,你得将EnableEvents属性设置回True,确保事件被激活了。 1. 打开一新工作簿并另存为DisableEvents.xls 2. 切换到VB编辑器屏幕,双击工程浏览器窗口的ThisWorkbook,并且在出现的代码窗口里输入Workbook_BeforeSave事件过程 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ Cancel As Boolean) If MsgBox(Would you like to copy vbCrLf _ this worksheet to vbCrLf _ a new workbook?, vbYesNo) = vbYes Then Sheets(ActiveSheet.Name).Copy End If End Sub 3. 选择插入|模块添加一个标准模块激活VBA工程,并且输入下面显示的过程: Sub EnterData() With ActiveSheet.Range(A1:B1) .Font.Color = vbRed .Value = 15 End With Application.EnableEvents = False ActiveWorkbook.Save Application.EnableEvents = True End Su

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档