ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: zhunwang

这个过程:Private Sub App_NewWorkbook(ByVal Wb As Workbook),放在哪儿才有效?有附

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-1-6 17:55 | 显示全部楼层
我说明一下,懒得演示。
1。首先,它是EXCEL.APPLICATION的实例事件
你只要把它关联到APPLICATION就OK
2。问题是APLLICATION在EXCEL里,大多数情况之下,它是一个“唯一实例”
因为它是“有且只有”一个的APPLICATION,它有CLASS类原型,但你不能CREATE生成,“正常”情况下,当你的EXCEL VBA运行里,它就存在了,它是一切EXCEL类实例的上级,PARARES上溯就能找到。

3。怎么关联?
1和2都不是问题,因为在EXCEL里,直接呼叫APPLICATION就完了,我们这么一写
SET myApp=APPLICATION
你的MYAPP对象(变量)立刻就是APPLICATION实例
要做的就是楼主的疑问,怎么让事件和对象关联

所以这就是知识点,在微软的HELP,在EXCEL的CHM,或者说,在VBA的知识库里提到的
请注意这一点:
WITHEVENTS 必须在类和对象实例里使用
(你可以查可与WITHEVENTS相关的帮助)
只要是在类中声明的变量,你就能绑定事件
DIM WITHEVENTS MYAPP AS EXCEL.APPLICATION
SET MYAPP=APPLICATION
而这个类,可是普通的类模块CLASS,也可以是WORKBOOK(THISWORKBOOK)、WORKSHEET模块
因为后者本身与APPLICATION一样,它们是特殊的“类模块”(加上唯一的对象实例)
但在普通的类模块中,你应该注意,必须生成实例对象,这是一个常识,WORKBOOK和SHEET没这个问题,前面说了,那些东东本身就是一个实例。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-1-6 19:22 | 显示全部楼层
hiyou 发表于 2012-1-6 17:55
我说明一下,懒得演示。
1。首先,它是EXCEL.APPLICATION的实例事件
你只要把它关联到APPLICATION就OK

长见识了。
谢谢!

TA的精华主题

TA的得分主题

发表于 2017-5-30 10:23 | 显示全部楼层
佩服之至,太强大了,找了好久
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-24 13:42 , Processed in 0.031977 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表