如何使用用户定义的类型?

时间:2017-01-02 19:04:47

标签: vba excel-vba vbscript user-defined-types excel

每次我尝试将UDT传递给其他函数时,我都会遇到这样的编译错误:“只有公共对象模块中定义的用户定义类型才能被强制转换为变量或从变量强制传递到后期绑定函数。” / p>

我测试过的唯一一个使用UDT作为参数的内部函数是VarPtr。我甚至不能使用TypeName或VarType。

有没有办法将UDT作为不明确期望特定类型的参数传递?有点像Variant但是对于UDT。

我还想将UDT存储在数组/字典/集合中,但这似乎也存在问题。 UDT听起来非常适合我的需求(不需要单独的类模块),但看起来它们是非常严格类型的(如果这是正确的术语)。

编辑:看起来VarPtr期望参数为“Any”类型,所以也许这就是接受Variants和UDT的类型。问题是,Excel内置的VBA IDE不允许我使用该类型。

1 个答案:

答案 0 :(得分:0)

因此,您只能在声明它们的模块中使用UDT,因此很可能您在一个模块中声明了UDT,并且当另一个模块中的函数尝试使用您的UDT时生成错误...

我认为根据您的问题,您正在寻找与UDT类似的自定义类,但它们可以在整个项目中使用,甚至作为参数传递给您正在寻找的函数。

希望这有助于 - TheSilkCode