gpt4 book ai didi

vba - 在同一行中创建和使用一个类

转载 作者:行者123 更新时间:2023-12-02 08:10:23 25 4
gpt4 key购买 nike

在 JavaScript 和其他面向对象的语言中,您可以实例化一个类的新实例,并在同一行中使用该类实例的方法。例如:

class customClass {
method(){
return "hello"
}
}
var s = (new customClass).method() // s = "hello"

如果我在 VBA 中尝试相同的操作:

s = (new customClass).method()

我得到一个编译错误:Expected: end of statement,同时在customClass)之后突出显示. .

如果您愿意,可以执行以下操作:

Dim c as new customClass: s=c.method()

但是,在我看来,在这种情况下,不清楚是否设置了 s 会使代码更难管理。

是否有其他方法可以使行更清晰易懂,同时又能快速轻松地编写?

最佳答案

当然可以。

With New Collection: .Add 42: Debug.Print .Count: End With

我可能想咬掉谁把它放在生产代码中,但你确定可以

并不意味着你应该

请注意,由于某种原因,您不会在此类内联 With block 中获得用于 With block 变量引用的 IntelliSense。

可能与也可能无关VBA 代码不应该这样编写


如果您要调用的方法不改变全局或实例状态,请考虑在您的类上指定 VB_PredeclaredId 模块属性(导出模块,在记事本中编辑其标题,重新导入模块)。

这样,这段代码就变得合法了,而且看起来更符合 VBA 的习惯:

SomeCustomClass.SomeMethod

机制与人们对默认实例执行 UserForm1.Show 时所涉及的机制相同,而无需创建 New 对象。

关于vba - 在同一行中创建和使用一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47818596/

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