VBA中Global关键字可正常使用但未被官方收录的疑问
VBA
Global关键字的有效性及弃用说明 有效性确认
你写的Global Const variable = value语法完全合法,可正常运行:
Global是VBA为兼容旧版VB语法保留的有效关键字,在标准模块中使用时,修饰的常量、变量作用域和Public修饰的完全一致,可跨模块正常调用- 官方现行VBA文档未重点提及该关键字,是因为它属于遗留兼容特性,没有新增适用场景,通用语法说明统一推荐使用
Public
功能与适用场景差异
Global仅允许在标准模块(.bas模块)的声明段使用,在类模块、窗体模块、Office对象模块(工作表/工作簿模块等)中使用会直接触发编译错误Public可在所有类型的模块中使用,覆盖Global的全部功能,场景适配性更强
弃用状态说明
微软VBA语言规范的兼容说明中明确标注:Global属于已弃用的遗留关键字,仅为保障旧版VB迁移过来的代码可正常运行保留,后续不会再有功能更新,所有适用场景都可被Public完全替代,官方推荐所有新编写的代码统一使用Public
替换建议
你可以直接把现有代码中的Global全部替换为Public,不会产生任何功能差异,也不会触发报错,同时可以提升代码的兼容性,后续如果需要把全局常量迁移到其他类型模块时无需额外修改。
内容的提问来源于stack exchange,提问作者NewSites
相关产品推荐
相关产品推荐

