首页 > 解决方案 > VBA 关键字“全局”

问题描述

我在我的 VBA 代码中声明了一些常量:

global const variable = value

这些声明工作正常,我的意思是它们不会导致错误,并且常量在其他模块中使用时不会出错。

在查看我的变量范围时,我查看了 Microsoft 文档以确保我做对了。但是你瞧,我发现微软甚至没有定义global为关键字!VBA 的官方关键字列表不包括global

此外,该const语句的语法在以下位置给出:

是:

[ Public | Private ] Const constname [ As type ] = expression

这不允许global作为修饰符。这应该意味着我的声明应该引发编译器错误。

此外,三个关于 VBA 范围的 Microsoft 页面在其文本中的任何地方都没有包含“全局”一词:

我在 Microsoft 文档的一页中找到了一个关键字global,它是在定义命名空间的上下文中:

因此,上面链接的 VBA 关键字列表不包括global.

有一个Stack Overflow答案指出,“Public并且Global它们的功能几乎相同,但是Global只能在标准模块中使用,而Public可以在所有上下文(模块、类、控件、表单等)中使用。Global来自旧版本VB 并且可能为了向后兼容而保留,但已被完全取代Public。”:

还有另一个Stack Overflow答案将关键字描述global为“现已弃用,但仍然有效”:

如果这些答案是正确的,那么我应该更改我的代码以替换globalpublic. 但是是否有一些关于弃用的文档global以及它实际上仍然作为一个工作关键字的事实?

标签: vbaglobalkeyword

解决方案


推荐阅读