我已经尝试解决此问题,但是找不到任何解决方案。我在普通模块中定义了UDT,并希望将其用作类模块中Public Sub中的参数。然后,我得到一个编译错误:


只有在公共对象模块中定义的公共用户定义类型可以用作类模块的公共过程的参数或返回类型,也可以用作公共用户定义类型的字段


然后,我尝试在声明为Private的类中移动我的UDT。我收到此编译错误:


私有Enum和用户定义类型不能用作公共过程,公共数据成员或公共用户定义类型的字段的参数或返回类型。


我最终尝试在类中将其声明为Public,并得到以下编译错误:


无法在私有对象模块中定义公共用户定义的类型。


那么,有什么方法可以将公共UDT用作类的公共子类中的参数?

最佳答案

那么有什么办法可以公开
UDT用作公共参数
子班?


一言以蔽之。仅经典VB代码所能提供的最接近的功能是创建一个复制UDT的类,并改用该类。那里肯定有优势,但是如果您也需要将其传递给API,就会遇到麻烦。

另一个选择是在typelib中定义UDT。如果这样做,则可以将其用作公共方法的参数。

关于vba - 用户定义类型(UDT)作为类模块(VB6)中公共(public)Sub中的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/975982/

10-10 18:48