3 回答
TA贡献1775条经验 获得超8个赞
从这里:
使用VBScript调用语句 调用子例程当您希望调用子例程时,可以选择使用Call语句。与Sub一起使用时,Call语句的目的是允许您将参数列表括在括号中。但是,如果子例程未传递任何参数,则在使用Call语句调用Sub时,仍不应使用括号。
Call MySubroutine
如果子例程具有参数,则在使用Call语句时必须使用括号。如果有多个参数,则必须用逗号分隔参数。
Call MySubroutine(intUsageFee, intTimeInHours, "DevGuru")
调用函数 有两种方法可以调用函数。您可以直接调用该函数(仅按名称),也可以使用VBScript Call语句进行调用。
通过名称 调用函数当直接通过名称调用函数且未分配返回值时,以下所有均为合法语法:
MyFunction
MyFunction()
MyFunction intUsageFee, intTimeInHours, "DevGuru"
如果需要返回值,可以将函数分配给变量。请注意,如果有一个或多个参数,则必须使用括号。
returnval = MyFunction
returnval = MyFunction()
returnval = MyFunction(intUsageFee, intTimeInHours, "DevGuru")
TA贡献1895条经验 获得超3个赞
我只是发现了一些奇怪的行为,即在调用带有/不带有括号的函数时。谷歌把我带到这里。
sub test()
dim a as double
a = 1#
p(a) 'this won't change a's value
Debug.Print a '1
p a ' this is expected behavior
Debug.Print a '2
Call p(a) 'this is also valid
Debug.Print a '3
end sub
Function p(a as Double) 'default is byref
a = a + 1
end function
我的结论是,仅使用一个参数调用函数时,您必须使用Call或省略括号,否则该参数不会通过引用传递(正如我已经检查过的那样,它仍然会被调用)。
添加回答
举报