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

Aki*_*ita 2 excel vba global-variables excel-vba

如果在上一位开发人员离开公司后有人必须继续处理Excel VBA项目/模块,他们如何安全地更改全局变量名称

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

使用搜索/替换更改它们是一个问题,因为有时它会出现在注释中.

通过复制/粘贴更改它们是一个问题,因为它很长,你可能会错过一些,特别是如果有很多事件发生或者你把它改成类似的东西.

有没有办法通过Excel"IDE"或其他工具安全地执行此操作?

Mat*_*don 8

您需要在此处执行的操作称为重构 - 您需要对代码进行可能的危险更改,而不会影响其行为.做错了,代码破了!

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

大多数现代IDE都具有这样的功能(以及其他一些重构).然而,在Visual Studio成为自那时以来的全功能工具之前,VBE处于其辉煌的高度 - 哎呀,VBE 1998年的Visual Studio(6.0)!

所以你真的有两个选择:

  • 手动重构 - IDE的搜索和替换功能(Ctrl + H)在这里可能很危险,因为它将代码视为简单文本,没有语义理解:您需要单独检查每个事件,或冒险重命名不是的标识符引用您尝试重命名的变量.
  • 使用第三方工具 - 我不知道任何VBIDE加载项能够深入理解代码以允许安全地重构VBA代码,而不是我自2014年10月以来管理的开源Rubberduck项目.此加载项解析整个项目,构建符号表,并允许您导航,是,重构/重命名任何标识符,自动更新所有调用站点.

Rubberduck在工作中重命名重构

请注意,Rubberduck是一个非常活跃的开源项目,不断改进.解析VBA 很难,并且使VBE在功能上与现代IDE相提并论并不是一件小事,也不容易......但它很有趣,是的,它是有效的.