对局部变量和函数使用相同的名称

时间:2010-05-21 20:58:36

标签: vba

在VBA中,我想使用一个名称作为本地变量,我也想用它作为函数名。问题是函数名称格式化始终会更改为局部变量格式。

有什么方法可以阻止这种情况吗?

2 个答案:

答案 0 :(得分:2)

我强烈建议使用相同的名称来消除歧义。此外,如果VBA不区分大小写,它可能不知道您是在引用函数还是变量,从而产生运行时错误(我认为它不是编译本身,但它转到专有的p代码中间体。)

通常,当您希望名称相似时,将下划线添加到一个(例如局部变量)会很有用。因此,如果您想要使用该路线,我建议您将函数FunctionName和变量_FunctionName命名。

如果您想尝试为每个名称设置相同的名称,则可能需要编辑重新格式化代码的IDE之外的代码。在不尝试自动格式化的编辑器中,您可以强制它。然后是否编译就是问题。

答案 1 :(得分:1)

在Visual Basic中,每个函数都有一个以函数命名的变量。为此变量赋值是设置此函数返回值的唯一方法。

因此,声明另一个同名变量会产生歧义。你不能这样做。这会导致Duplicate declaration in current scope错误。

如果用“local”变量表示模块级变量,那么你也不能这样做:Ambiguous name detected: %s

如果您询问某个函数和同名变量属于不同作用域的情况,那么VBA将使用最后编辑的行的大小写。因此,如果您声明一个函数然后在另一个模块中声明一个变量,那么函数名称将更改大小写。但是,如果你然后返回到该函数,更改其套管并按Enter键,则该变量将更改其外壳以匹配函数名称。