Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/windows-phone-8/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 对局部变量和函数使用相同的名称_Vba - Fatal编程技术网

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

Vba 对局部变量和函数使用相同的名称,vba,Vba,在VBA中,我希望为局部变量使用一个名称,同时也希望为函数名使用该名称。我发现的问题是,函数名格式总是更改为局部变量格式 有什么办法可以防止这种情况发生吗?我强烈建议不要使用相同的名称来消除歧义。此外,如果VBA不区分大小写,它可能不知道引用的是函数还是变量,因此会给出运行时错误(我不认为它本身是编译的,但它会转到专有的p代码中间) 通常,当您希望名称相似时,在名称前加下划线会很有用,例如局部变量。因此,我建议您将函数命名为FunctionName,如果您想执行该路径,则将变量命名为\u Fun

在VBA中,我希望为局部变量使用一个名称,同时也希望为函数名使用该名称。我发现的问题是,函数名格式总是更改为局部变量格式

有什么办法可以防止这种情况发生吗?

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

通常,当您希望名称相似时,在名称前加下划线会很有用,例如局部变量。因此,我建议您将函数命名为
FunctionName
,如果您想执行该路径,则将变量命名为
\u FunctionName

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

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

通常,当您希望名称相似时,在名称前加下划线会很有用,例如局部变量。因此,我建议您将函数命名为
FunctionName
,如果您想执行该路径,则将变量命名为
\u FunctionName


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

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

因此,声明另一个同名变量会产生歧义。你不能这样做。它会导致当前范围中的
重复声明
错误

如果“local”变量是指模块级变量,那么您也不能这样做:
检测到不明确的名称:%s


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

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

因此,声明另一个同名变量会产生歧义。你不能这样做。它会导致当前范围中的
重复声明
错误

如果“local”变量是指模块级变量,那么您也不能这样做:
检测到不明确的名称:%s


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

我正试图停止使用匈牙利语,但这并不容易。另外,VBA不允许变量以下划线开头。好的:函数名和函数名?还有,为什么停止使用匈牙利语?(总是在寻找理由。)因为人们说这很糟糕,他们会取笑我,拿走我的午餐钱。维基百科()提供了一些关于匈牙利语的有趣的优缺点。就我个人而言,这可以归结为巧克力或香草,对我来说。我想我们应该澄清的是,当你把变量的类型包括在它的名字中,比如strName,这意味着它是一个字符串名时,系统的匈牙利符号。这是一个经常被人皱眉的问题。另一个是匈牙利语,当目的包括在内时,作为对你自己的提示,比如numHorses,它表示的是马的数量,而不是颜色或其他东西。细微但重要的区别。在这两种情况下,这两种约定都使用了一种形式的CAMELCUSE。然而,无论使用哪种命名组合,我仍然保持函数和变量的命名永远不会相同。我试图停止使用匈牙利语,但这并不能让事情变得简单。另外,VBA不允许变量以下划线开头。好的:函数名和函数名?还有,为什么停止使用匈牙利语?(总是在寻找理由。)因为人们说这很糟糕,他们会取笑我,拿走我的午餐钱。维基百科()提供了一些关于匈牙利语的有趣的优缺点。就我个人而言,这可以归结为巧克力或香草,对我来说。我想我们应该澄清的是,当你把变量的类型包括在它的名字中,比如strName,这意味着它是一个字符串名时,系统的匈牙利符号。这是一个经常被人皱眉的问题。另一个是匈牙利语,当目的包括在内时,作为对你自己的提示,比如numHorses,它表示的是马的数量,而不是颜色或其他东西。细微但重要的区别。在这两种情况下,这两种约定都使用了一种形式的CAMELCUSE。然而,无论使用哪种命名组合,我仍然保持函数和变量的命名