2016-08-13 236 views
0

我会尽我所能将这个问题正确地说出来。Excel VBA枚举类型说明:成员定义更改案例

VBA IDE具有此功能,它可以将变量名称中的字符大小更改为最后输入变量名称的情况。

例如,让我们说,我开始了与在SUB下面一行:

VAR1 = 1 

现在,让我们说,我在下面的行中键入:

var1 = 2 

整个子现在变成:

var1 = 1 
var1 = 2 

我知道我可以通过声明变量使用昏暗状态员t或任何范围说明。

问题: 我在类模块中使用Enum。其中一个公共属性与Enum相关联。我已在成员名称中使用大写字母来使其可读(骆驼大小写)。

现在,当用户在其标准代码模块中设置该属性时,如果它们全部以小写形式输入,则类模块中的Enum定义随之一起更改。

有没有办法阻止这种情况发生?

回答

2

有没有办法阻止这种情况发生?有没有办法阻止 发生?

看来我的答案是否定的。多年来,我提出它并简单地记住这种行为。此外,它也适用于标准模块。 。

+0

回复:teylyn _“... Option Explicit ...(你应该)...... DIM(你应该)......” - - 它对问题没有影响。而且,这不是太“你应该”吗? ;) – user6698332

+0

好的,我拉我的答案。但是使用Option Explicit和DIMming变量确实是两次“应该”。你可能已经知道为什么了。 – teylyn

+0

我完全同意你,是的!然而,只有在你的(我)自己 - 这种严重可能会混淆另一个人:) – user6698332

2

Option ExplicitDim保护变量名称。但它不会保护枚举中的值名称。

例子:

Option Explicit 

Private Enum MyEnum 
Item1 = 1 
iTem2 = 2 
CamelCaseItem = 3 
End Enum 

Private CamelCaseVariable As Integer 


Sub test() 
Dim myVariable As MyEnum 
myVariable = Item1 + CamelCaseItem 
'myVariable = camelcaseitem 
Debug.Print myVariable 

'camelcasevariable = 3 
End Sub 

如果取消对值名称CamelCaseItem'myVariable = camelcaseitem然后字母的大小写将枚举声明中改变。

如果您取消对'camelcasevariable = 3的注释,则此行中的字母大小写将更改,但声明中的大小写不变。