gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 20:58:42 24 4
gpt4 key购买 nike

每次我尝试将 UDT 传递给其他函数时,我都会收到此编译错误:“只有在公共(public)对象模块中定义的用户定义类型才能强制转换为变体或从变体强制转换或传递给后期绑定(bind)函数。”

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

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

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

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

最佳答案

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

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

希望这可以帮助-
丝绸代码

关于vba - 如何使用用户定义的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41432081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com