为什么添加字典类的方法不需要括号?

时间:2013-10-01 21:30:19

标签: vba dictionary excel-2007

字典类的add方法的VBA语法如下:

Dictionary.Add (Key as String, Item as Variant) 

但实际上包括这些括号会产生语法错误。

因此,如果D是字典类型的对象,那么vba期望: D.添加" key1"," value1"

而不是:

D.Add(" key1"," value1")< =这会产生错误!

将Add方法与Exists对比:

Dictionary.Exists (Key as String)

实际上是预期括号:

V1 = D.Exists(" key1")

那么为什么Add语法指定()' s,但实际上并不期望它们(如果使用它们甚至会产生错误),而Exists语法指定它们并且实际上是期待他们?

1 个答案:

答案 0 :(得分:1)

在VBA中,如果使用参数调用Sub,则可以使用以下命令调用它:

YourSub Parameter1

Call YourSub(Parameter1)

请注意,YourSub (Parameter1)实际上会将Parameter1转换为字符串,然后将其交给YourSub - 这肯定不是您想要的!

如果它是一个函数,你可以调用它:

result = YourFunction(Parameter1)

如果是Dictionary对象,.Add是方法/子,即您使用dict.Add Key, Value,而.Exists是一个函数,因此您需要使用if dict.Exist(Key)...