如何在Excel VBA项目中更改全局变量名称?

时间:2018-08-27 12:52:04

标签: excel vba excel-vba global-variables

如果以前的开发人员离开公司后有人必须继续从事Excel VBA项目/模块的工作,他们如何安全地更改全局变量名称

如果这些全局变量名称具有误导性,拼写错误,看起来像另一个变量,不遵循所选约定等,则可能会出现问题。

使用“搜索/替换”更改它们是一个问题,因为有时它是出现在注释中的单词。

通过复制/粘贴更改它们是一个问题,因为它很长,并且您可能会错过一些,尤其是在出现很多情况或将其更改为类似内容的情况下。

是否可以通过Excel“ IDE”或其他工具安全地执行此操作?

1 个答案:

答案 0 :(得分:8)

您在这里需要做的称为<​​em>重构-您需要在不影响其行为的情况下对代码进行可能的危险更改。做错了,代码就破了!

重命名在一个或多个位置使用的标识符是重命名重构。

大多数现代IDE都具有这样的功能(以及其他几个重构)。但是,在Visual Studio成为自那时以来功能齐全的工具之前,VBE处于其辉煌时期-哎呀,1998年,VBE Visual Studio(6.0)!

所以您确实有两个选择:

  • 手动进行重构-IDE的搜索和替换功能(Ctrl + H)在这里可能很危险,因为它会将代码视为简单文本,而没有语义上的理解:您需要分别检查每个事件,否则可能会重命名未引用您要重命名的变量的标识符。
  • 使用第三方工具-除开源{{3}之外,我不知道任何VBIDE加载项能够充分理解代码以允许安全地重构VBA代码}专案,由2014年10月起管理。此外接程序可解析您的整个项目,构建符号表,并让您浏览,是的,重构/重命名任何标识符,自动更新所有呼叫站点。

Rubberduck's rename refactoring at work

请注意,Rubberduck是一个非常活跃的开源项目,正在不断改进。解析VBA是困难,要使VBE在功能上与现代IDE并驾齐驱并不是一件容易的事,也不是一件容易的事……但这是 fun ,并且是的,它有效。