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。但性能怎么样?当拥有大量的代码和程序时,一个或那个会对性能/速度产生影响吗? 在决定是使用一种形式还是另一种形式时,是否还有其他方面需要考虑?
答案 0 :(得分:5)
如果我理解正确,并且我对VBA的理解是正确的,那么无论您是使用库前缀限定属性还是方法,它在性能方面都没有太大差异。我认为没有必要限定vba库中引用的对象(如果你确实在vba环境中工作,而不是说.net使用interop),但是当你设置外部引用时(例如MSXML2,或者脚本),为了清楚起见,完全限定功能参考可能是有益的。
使用完全限定名称可以提高清晰度(在某些情况下)。在未来一年,当其他人去维护您的代码时,他们可能会发现某些功能是在引用的库中定义的(例如MSXML2)。此外,如果引用的库包含与vba库同名的函数,或者另一个库设置为引用,则需要限定函数名称。
从引用的库中完全限定函数名称可能是一种很好的做法。虽然vba库也被设置为vba应用程序中的引用,但我认为这是您不需要限定的一个库。
请注意,使用完全限定名称是指一些额外的输入。由于您的应用程序是用vba编写的,因此使用vba.Function将是半冗余的。但是对于引用的库,你需要在清晰度/可维护性和易于键入之间做出选择(我已经订阅了学校“写下代码的方式,这将使下一个必须处理它的人受益”,然后再进行编写“我更容易”写作。