使用新的 MyTestableMacro .运行 - 它有什么作用?

With New MyTestableMacro .Run - What does it do?

我正在关注 Rubberduck 的 this 教程VBA 并遇到了这段代码,但不知道它的实际作用:

With New MyTestableMacro
    .Run dataServiceStub, wsServiceStub
End With

我尝试搜索 "New keyword in With statement" 以及其他一些内容,但没有找到任何相关内容。

这不是我一年以来看到的代码VBA...

我也试过用方法 Run 制作一个名为 MyTestableMacro 的 class,但也没有用。

为了清楚起见,我想知道 MyTestableMacro 是什么。它是 class、模块、临时宏吗?里面是运行一个method/function吗?

从概念上讲,这与以下代码没有区别:

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

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

With New MyTestableMacro
    ...
End With

关于您的另一个问题 -- MyTestableMacro 应该是一个 class 模块。否则你根本无法 New 它。 Run 通常是 Public 方法(可以是 SubFunction,给定 post 中使用的语法)。 Private 方法将不起作用。 Friend 仅适用于同一个 VBA 项目,但很少看到使用 Friend 而不是 PublicPrivate.[=25= 的方法]