Excel VBA:如何在个人宏工作簿的类模块中使用早期绑定
VBA 引用列表中展示的是 VBA 项目的自定义名称,不是工作簿的文件名,所以你找不到 Personal.xlsb 是正常现象,只要你已经添加了 PersonalMacros 项目的引用,只需要完成以下配置即可实现早期绑定:
解决步骤
- 调整类模块的实例化属性
打开个人宏工作簿的VBA编辑器,找到cVideo类模块,按F4打开属性窗口,将Instancing属性从默认的1 - Private修改为2 - PublicNotCreatable。 - 确认个人宏工作簿VBA项目配置
右键点击PersonalMacros项目,选择「VBAProject 属性」,在「通用」页确认:
- 项目名称已经设置为
PersonalMacros(不要用默认的VBAProject,避免重名冲突) - 项目没有设置密码保护,否则其他项目无法正确读取类定义
- 调整客户端代码写法
添加对PersonalMacros的引用后,不需要再用Application.Run创建实例,直接调用公开的工厂函数即可,写法如下:
Option Explicit ' 早期绑定声明,直接指定类所属的VBA项目 Dim Video As PersonalMacros.cVideo Set Video = PersonalMacros.new_video()
此时输入Video.就会正常弹出智能提示列表了。
注意事项
- 个人宏工作簿默认随Excel启动自动加载,不用手动打开,只要不修改其存储路径,引用不会失效
- 如果后续修改了
cVideo类的方法、属性定义,建议依次对PersonalMacros项目、客户端项目执行「调试-编译VBAProject」操作,确保智能提示同步更新 - 如果出现引用丢失的情况,只需要在引用窗口取消勾选失效的PersonalMacros引用,重新添加即可
内容的提问来源于stack exchange,提问作者GBMedusa
相关产品推荐
相关产品推荐

