为什么我不能在VBA中使用"Any"作为名称?

che*_*eak 5 excel vba excel-vba

在尝试定义类似python的Any()函数时,我发现我无法将任何名称命名为"Any".

尝试命名Function,Sub,Const或变量any将引发语法错误,VBA IDE将突出显示它.

我知道任何不是一个特别好的名字,但为什么它会抛出语法错误?我能想到的唯一原因是它可能是一个保留的关键字,但事实并非如此.

use*_*740 8

VBA(Visual Basic for Applications)不是 VB.NET,即使它们共享相同的"Visual Basic"monikor和类似的语法.(链接的文档适用于VB.NET,而不是VBA.)

VB6和VBA 微软办公软件(如:Access,Excel中)处理Any作为一个保留字,它不能被用作标识符:

如果使用保留字来命名控件,对象或变量,则可能还会遇到错误.您收到的错误消息并不一定告诉您保留字是导致问题的原因.

但是,在VB.NET中,使用Any变量名或其他标识符没有问题:

Dim Any as String = "Hello world!"    'works just fine in VB.NET
Run Code Online (Sandbox Code Playgroud)

  • 是的,MS非常擅长将官方VB6的东西保存在难以找到的地方.如果在代码模块中键入Any,将光标放在单词中并单击F1,您将进入Declare帮助文件.当你不知道要返回的数据类型时,它会说你可以在API调用中使用"As Any".它是API数据类型的变体.这就是它保留的原因. (6认同)