
Compile error:
Cannot define a Public user-defined type within an object module在Visual Basic for Applications (VBA)中,上述编译错误意味着什么?
我想指出的是,在一个单独的空Powerpoint文件中,完全相同的代码没有错误。
谢谢。
发布于 2021-04-23 17:06:22
您需要了解VBA中不同类型的代码模块。基本上,你可以拥有
根据环境的不同,您可以拥有内置模块。在Excel中,这些是工作簿和工作表模块,在Word中是文档模块(据我所知,在Powerpoint中没有内置模块)。
现在,除了常规模块之外,上述所有内容都定义了类(用户表单、工作表、工作簿、文档都是特殊类型的类)。类不能包含公共类型(它已经是公共类型),就这么简单。这类似于你不能在一个类型中定义一个类型。
我假设您在用户窗体代码中定义了您的类型。如果只在该表单中需要该类型,请将其声明为private。允许在类中定义类型,但它们需要是私有的,换句话说,在项目的其他模块中,类型是未知的,因此,您不能拥有该类型的公共变量或返回该类型的公共函数。
如果您需要多个模块中的类型,则需要将类型定义移动到常规模块中(这是GSerg在注释中所写的)。
https://stackoverflow.com/questions/67225505
复制相似问题