在VBA中,我想使用一个名称作为本地变量,我也想用它作为函数名。问题是函数名称格式化始终会更改为局部变量格式。
有什么方法可以阻止这种情况吗?
答案 0 :(得分:2)
我强烈建议不使用相同的名称来消除歧义。此外,如果VBA不区分大小写,它可能不知道您是在引用函数还是变量,从而产生运行时错误(我认为它不是编译本身,但它转到专有的p代码中间体。)
通常,当您希望名称相似时,将下划线添加到一个(例如局部变量)会很有用。因此,如果您想要使用该路线,我建议您将函数FunctionName
和变量_FunctionName
命名。
如果您想尝试为每个名称设置相同的名称,则可能需要编辑重新格式化代码的IDE之外的代码。在不尝试自动格式化的编辑器中,您可以强制它。然后是否编译就是问题。
答案 1 :(得分:1)
在Visual Basic中,每个函数都有一个以函数命名的变量。为此变量赋值是设置此函数返回值的唯一方法。
因此,声明另一个同名变量会产生歧义。你不能这样做。这会导致Duplicate declaration in current scope
错误。
如果用“local”变量表示模块级变量,那么你也不能这样做:Ambiguous name detected: %s
。
如果您询问某个函数和同名变量属于不同作用域的情况,那么VBA将使用最后编辑的行的大小写。因此,如果您声明一个函数然后在另一个模块中声明一个变量,那么函数名称将更改大小写。但是,如果你然后返回到该函数,更改其套管并按Enter键,则该变量将更改其外壳以匹配函数名称。