“VBA”。前缀,例如VBA.Randomize vs Randomize,有什么区别?

时间:2018-05-30 14:20:02

标签: vba excel-vba excel

我刚刚检查了一些GitHub代码,它中充满了以“VBA”开头的语句,没有它就可以正常工作。

添加“VBA”背后的原因是什么?

2 个答案:

答案 0 :(得分:8)

VBA是一个参考库,它告诉编译器专门使用后面的方法或函数的VBA特定实现。

原因是因为默认情况下可能有其他引用的库可能具有优先级,并且编码器不知道您可能具有哪些引用或它们的顺序。

如果您有一些其他的Randomize实现,并且它按引用顺序更高,编译器会希望参数匹配该特定实现的格式,并使用该特定位代码。

VBA.放在VBA关键字前面只会确保将使用的版本是作者想要的版本而不是其他版本。

答案 1 :(得分:4)

只有一种方法可以确保如果有人将Randomize用作用户定义的函数/过程名称,那么非常糟糕:

Public Sub Randomize()
    'do fancy stuff
End Sub

VBA.Randomize仍会调用正确的函数,而不是用户定义的函数。