ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > Auto_Open子过程与Workbook_Open事件过程有什么区别?

Auto_Open子过程与Workbook_Open事件过程有什么区别?

作者:绿色风 分类: 时间:2022-08-17 浏览:127
楼主
水星钓鱼
Q:Auto_Open子过程与Workbook_Open事件过程有什么区别?
A:在Excel的“标准模块”中可以创建4种自动运行的宏,它们分别是Auto_Open(打开工作簿时自动运行), Auto_Close, Auto_Activate,  Auto_Deactivate。这些自动运行的宏是为了与Excel 5 和 95兼容而保留下来的。现在可以使用工作簿的 Open, Close, Activate , Deactivate 事件来代替它们。
当一个工作簿中分别有Workbook_Open事件和Auto_Open子过程时,当打开工作簿时,Workbook_Open事件先运行,然后再运行Auto_Open子过程。但是并不是所有情况都会运行Auto_Open子过程,如果在其它工作簿中用代码打开该工作簿的话(比如用Workbooks.Open方法打开该工作簿),则只会运行Workbook_Open事件,而不会运行Auto_Open子过程。为了加深理解,可以参考如下代码:
新建一个工作簿:
在“Thisworkbook”模块中粘帖如下代码
  1. Private Sub Workbook_Open()
  2.     MsgBox 1
  3. End Sub

插入一个模块
在“模块1”中粘帖如下代码
  1. Sub auto_open()
  2.     MsgBox 2
  3. End Sub

保存关闭该工作簿,然后再打开该工作簿。
查看运行的结果,可以发现先弹出1,再弹出2。
2楼
omnw
很基础的内容,非常重要的知识。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap