Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA奇怪的语法_Vba_Syntax - Fatal编程技术网

VBA奇怪的语法

VBA奇怪的语法,vba,syntax,Vba,Syntax,请参阅下面的贝娄VBE告诉我们,尽管.Add是一个Sub,但它希望在第3行上有一个“=”,我不明白为什么 1 Sub Set_Params(key As String, value As Variant) 2 Dim Tranasitions as Collection 3 Transitions.Add (value, key) 4 End Sub 这是因为您的代码不知道什么是transasitions,所以您在声明中有一个输入错误(Dim行) 所以要修正它,修正声明

请参阅下面的贝娄VBE告诉我们,尽管
.Add
是一个Sub,但它希望在第3行上有一个“=”,我不明白为什么

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

这是因为您的代码不知道什么是
transasitions
,所以您在声明中有一个输入错误(
Dim
行)

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

Dim Transitions as Collection
然后从调用中删除
()
,在VBA中不能将它们与SUB一起使用(除非您将
调用
放在前面):


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

然后,使用调用转换。添加或删除括号


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

删除括号

Sub Set_Params(key As String, value As Variant)
    Dim Transitions as New Collection
    Transitions.Add value, key
End Sub
此外,您还必须实际创建一个新的转换实例。
哦,当您声明时,您将
转换
拼写为
转换
。打开
Option Explicit
,这样就不会再发生这种情况。

添加
后有一个空格。我刚刚测试了它,没有空格,:(相同的结果Minus one?我在这里是正确的。多年来一直这样做,
Call
是一个过时的关键字,它来自于一种古老的语言版本。实际上不是。这种行为非常微妙的不同。用谷歌搜索它。我理解其中的差异@Bathsheba。人们仍然在VBA中使用
Call
,我认为这不值得投反对票。
Sub Set_Params(key As String, value As Variant)
    Dim Transitions as New Collection
    Transitions.Add value, key
End Sub