VBA 奇怪的语法

VBA Strange syntax

尽管 .Add 是一个 Sub,但下面的 VBE 告诉它期望在第 3 行有一个“=”,我不明白为什么?

1  Sub Set_Params(key As String, value As Variant)
2      Dim Tranasitions as Collection
3      Transitions.Add (value, key)
4  End Sub

这是因为你的代码不知道 Tranasitions 是什么,你在声明中有错字(Dim 行)。

所以要修复它,修复声明:

Dim Transitions as Collection

然后从调用中删除 (),你不要将它们与 VBA 中的子一起使用(除非你将 Call 放在前面):

Transitions.Add value, key

首先,使用一致的名称引用集合。

然后,使用 Call Transitions.Add 等或去掉括号。

Vba 有这种神秘的调用语法。

删除括号。

Sub Set_Params(key As String, value As Variant)
    Dim Transitions as New Collection
    Transitions.Add value, key
End Sub

此外,您必须实际创建一个新的 Transitions 实例。 哦,您在声明时将 Transitions 拼写为 Tranasitions。开启 Option Explicit 这样就不会再发生了。