gpt4 book ai didi

excel - VBA 选项私有(private)模块等效,但仅适用于类模块中的单个函数?

转载 作者:行者123 更新时间:2023-12-02 21:59:00 25 4
gpt4 key购买 nike

在VBA中,我知道如果您希望子/函数只能在当前项目中访问,您可以将这些方法放入标记为Option Private Module的模块中。

但是如果我想使用类模块中的某个方法来执行此操作该怎么办?我可以从类中分离出单个方法吗?

具体来说,我的一个类中有一个属性,我希望它是只读的,除非它在当前项目中使用。该类中还有其他属性/子/函数,我希望它们真正公开。

我认为 Friend Property Let... 可能是执行此操作的正确方法,但是当我尝试它时,它不会阻止同一打开的 Excel session 中的另一个项目分配给属性(property)。因此,我正在为类中的函数子集寻找相当于 Option Private Module 的内容。

这可能吗?

<小时/>

解决这个问题的另一种方法是:你可以将一个类模块分布在多个子模块上吗?

最佳答案

由于这个问题没有太多人关注,而且我可能没有很好地表达它,我只是想我会同时发布我决定如何解决这个问题,以供后代使用。

VBA 中的类只能是 PrivatePublicNotCreateable,因此我已经使用工厂方法来创建对象。
我只是向工厂方法添加了一些代码,为每个对象分配唯一的标识符,并在我自己的单独数据结构中跟踪项目范围的伪属性。该类有一个属性“Get”,但要分配给它,需要调用 Option Private Module 模块中的特殊项目范围函数。
这不是一个完美的解决方案,但至少它达到了我想要的效果。

关于excel - VBA 选项私有(private)模块等效,但仅适用于类模块中的单个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10820163/

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