在VBA中,我想使用一个局部变量的名称,我也想使用它作为函数名。问题是,函数名称的格式总是更改为局部变量的格式。
有什么方法可以防止这种情况发生吗?
发布于 2010-05-22 05:25:32
我强烈建议不要为了消除歧义而使用相同的名称。此外,如果VBA不区分大小写,它可能不知道您引用的是函数还是变量,因此会给出运行时错误(我不认为它本身是编译的,但它会转到专有的p代码中间层)。
通常,当您希望名称相似时,在名称前面加上下划线可能很有用,例如局部变量。因此,如果您想这样做,我建议您将函数命名为FunctionName,并将变量命名为_FunctionName。
如果您想尝试让它们具有相同的名称,则可能需要在重新格式化代码的IDE外部编辑代码。在不尝试自动格式化的编辑器中,您可以强制它。那么它是否能编译就成了问题。
发布于 2010-05-22 07:37:57
在Visual Basic中,每个函数都已有一个以该函数命名的变量。为该变量赋值是为该函数设置返回值的唯一方法。
因此,声明另一个同名的变量会造成歧义。您不能这样做。它会导致Duplicate declaration in current scope错误。
如果您所说的“局部”变量是指模块级变量,那么您也不能这样做:Ambiguous name detected: %s。
如果您正在询问函数和同名变量属于不同作用域的情况,则VBA将使用最后编辑的行的大小写。因此,如果您先声明一个函数,然后在另一个模块中声明一个变量,则函数名称将改变大小写。但是,如果您随后返回到该函数,将其大小写改回并按Enter键,则变量将依次更改其大小写以匹配函数名。
https://stackoverflow.com/questions/2885532
复制相似问题