问题描述
我的项目中有一个类模块,我想将其提供给其他项目。我将班级模块移至我的个人工作簿。在 this Microsoft document 之后,我将此函数添加到个人工作簿中,以便能够在其他项目中创建类的实例。
@H_404_2@Option Explicit
Public Function new_video() As cVideo
Set new_video = New cVideo
End Function
我现在可以在我的项目中创建一个实例。但是,要做到这一点,我必须使用后期绑定。
@H_404_2@Dim Video As Object
Set Video = Application.Run("'personal.xlsb'!new_video")
根据上面链接的 Microsoft 文档,它说
记住,要使用早期绑定代码,客户端项目必须 包括对 Class Provider.xls 的引用(工具 | 引用...) 文件。
我已经设置了对 PersonalMacros(个人工作簿的项目名称)的引用,但我在列表中没有看到工作簿名称本身 (Personal.xlsb)。
还有什么我需要做的吗,或者我必须满足于延迟绑定?
解决方法
首先,在“项目资源管理器”窗口 (Ctrl+R) 中,确保选择已添加引用的工作簿。
然后选择 Tools >> References
,您应该会在可用参考下看到 PersonalMacros
。
然后您可以使用早期绑定声明并创建类对象的实例,如下所示...
Dim video As PersonalMacros.cVideo
Set video = PersonalMacros.new_video
另外,请确保您的类模块中的 Instancing
属性设置为 2 - PublicNotCreatable
。