我正在使用 Excel VBA 的类模块中定义的枚举。这一直工作正常,但每次我对枚举变量进行比较时,我都开始收到编译错误:
在 C 类示例中:
Enum MyEnum
Foo
Bar
End Enum
别处:
If someValue = myEnum.Foo Then
文本.Foo
将突出显示,并弹出“编译错误:需要常量表达式”消息。
在 Google 上的搜索表明这可能会随机发生,并且诸如重新启动 IDE 或在枚举声明后添加空格等修复可以使其重新开始工作。
- http://www.tek-tips.com/viewthread.cfm?qid=1355882
- http://www.vbforums.com/showthread.php?405564-RESOLVED-Constant-Expression-Required-Error-when-checking-Enum
这真的是 VBA 中的一个已知错误吗?我能做些什么来避免它发生,或者如果它突然出现,可以可靠地让 VBA 再次工作吗?
就我而言,关闭和重新打开 Excel 并没有帮助。对不起,我重新启动我的电脑。
重启后更新:
重新启动我的机器后问题仍然存在,这令人惊讶。我尝试在枚举定义前面添加(默认情况下Public
它们是公开的,但我想我会试一试),错误消失了。我已经删除了关键字(所以我们回到我的原始代码),它仍然可以编译并运行良好。Public
看起来这是 VBA 中的一个随机错误。我很想知道有经验的开发人员是否经常发现这种情况——你会建议不要使用枚举吗?还是它突然出现在一个蓝色的月亮上而我只是不走运?
经过 6 周的进一步开发后更新:
在我开发这个项目的剩余时间里,这个问题没有再次出现,所以看起来这是一个罕见的问题。