最好是在有或没有Class的情况下调用inBuilt VBA函数?

时间:2011-02-04 14:23:30

标签: performance vba

Vba中的一些inBuilt函数可以在有或没有类的情况下调用。哪一个更好用?

调用子/函数

vba.Format(date,"yy-MM-dd")
'or
Format(date,"yy-MM-dd")

此外,在标注变量时,可能会也可能不会使用该类。在这种情况下,哪个更好?

Dim xmlDoc As MSXML2.DOMDocument60
'or
Dim xmlDoc As DOMDocument60

我倾向于使用类和名称以防万一有人定义了可能带来冲突的函数/ Sub / type。但性能怎么样?当拥有大量的代码和程序时,一个或那个会对性能/速度产生影响吗? 在决定是使用一种形式还是另一种形式时,是否还有其他方面需要考虑?

1 个答案:

答案 0 :(得分:5)

如果我理解正确,并且我对VBA的理解是正确的,那么无论您是使用库前缀限定属性还是方法,它在性能方面都没有太大差异。我认为没有必要限定vba库中引用的对象(如果你确实在vba环境中工作,而不是说.net使用interop),但是当你设置外部引用时(例如MSXML2,或者脚本),为了清楚起见,完全限定功能参考可能是有益的。

使用完全限定名称可以提高清晰度(在某些情况下)。在未来一年,当其他人去维护您的代码时,他们可能会发现某些功能是在引用的库中定义的(例如MSXML2)。此外,如果引用的库包含与vba库同名的函数,或者另一个库设置为引用,则需要限定函数名称。

从引用的库中完全限定函数名称可能是一种很好的做法。虽然vba库也被设置为vba应用程序中的引用,但我认为这是您不需要限定的一个库。

请注意,使用完全限定名称是指一些额外的输入。由于您的应用程序是用vba编写的,因此使用vba.Function将是半冗余的。但是对于引用的库,你需要在清晰度/可维护性和易于键入之间做出选择(我已经订阅了学校“写下代码的方式,这将使下一个必须处理它的人受益”,然后再进行编写“我更容易”写作。