我正在关注RubberduckVBA的this教程,并且遇到了这段代码,但不知道它到底是做什么的:
With New MyTestableMacro
.Run dataServiceStub, wsServiceStub
End With
我尝试在With语句" 中搜索" New关键字以及其他一些内容,但没有找到任何相关信息。
这不是我在做VBA一年后看到的代码......
我还尝试使用方法MyTestableMacro
创建一个名为Run
的类,但该方法也无效。
为了清楚起见,我想知道MyTestableMacro
是什么。它是一个类,模块,临时宏吗?它内部是Run A方法/函数吗?
答案 0 :(得分:3)
从概念上讲,这与以下代码没有什么不同:
Dim something As MyTestableMacro
Set something = New MyTestableMacro
With something
...
End With
请注意,我们必须Dim
一个变量,然后使用New
关键字对其进行初始化。但是我们可以通过将它们压缩到这个单一语句中来减少2个额外的行:
With New MyTestableMacro
...
End With
关于你的另一个问题 - MyTestableMacro
应该是一个课程模块。否则你将根本无法New
。 Run
通常是Public
方法(可能是Sub
或Function
,给定您帖子中使用的语法)。 Private
方法不起作用。 Friend
仅适用于同一个VBA项目,但很少见到使用Friend
代替Public
或Private
的方法。