使用New MyTestableMacro。运行 - 它有什么作用?

时间:2018-04-25 08:53:53

标签: vba rubberduck

我正在关注RubberduckVBA的this教程,并且遇到了这段代码,但不知道它到底是做什么的:

With New MyTestableMacro
    .Run dataServiceStub, wsServiceStub
End With

我尝试在With语句" 中搜索" New关键字以及其他一些内容,但没有找到任何相关信息。

这不是我在做VBA一年后看到的代码......

我还尝试使用方法MyTestableMacro创建一个名为Run的类,但该方法也无效。

为了清楚起见,我想知道MyTestableMacro是什么。它是一个类,模块,临时宏吗?它内部是Run A方法/函数吗?

1 个答案:

答案 0 :(得分:3)

从概念上讲,这与以下代码没有什么不同:

Dim something As MyTestableMacro
Set something = New MyTestableMacro
With something
    ...
End With

请注意,我们必须Dim一个变量,然后使用New关键字对其进行初始化。但是我们可以通过将它们压缩到这个单一语句中来减少2个额外的行:

With New MyTestableMacro
    ...
End With

关于你的另一个问题 - MyTestableMacro应该是一个课程模块。否则你将根本无法NewRun通常是Public方法(可能是SubFunction,给定您帖子中使用的语法)。 Private方法不起作用。 Friend仅适用于同一个VBA项目,但很少见到使用Friend代替PublicPrivate的方法。