VBA 中是不是有办法了解未使用的变量?

Posted

技术标签:

【中文标题】VBA 中是不是有办法了解未使用的变量?【英文标题】:Is there a way in VBA to know about variables that aren't being used?VBA 中是否有办法了解未使用的变量? 【发布时间】:2008-10-09 19:51:27 【问题描述】:

标准 VBA 编辑器中是否有工具、方法或设置来警告已被 Dim'med 但未使用的变量?

【问题讨论】:

我不相信这个问题应该被搁置;最接近的原因是 “[问题是] 要求我们推荐 [...] 工具 [...] 或其他场外资源”。事实上,这个问题是针对 MS-Excel 内置编辑器 (VBE) 中的工具,而不是要求第三方工具或场外资源。尽管答案中提供的某些选项依赖于 3rd 方工具,但我认为这不一定使它们成为 “有意见的答案”“垃圾邮件”。确实one of the answers我直接在VBE中给出了作品,没有任何额外的工具。 这是一个很好的问题。请重新打开它。 @ExcelHero,暂时完成。这个问题不是关于寻找工具的,即使那是最好的答案。我希望有一个内部 VBA 编辑器方法。 我希望有办法。您始终可以使用“编辑”菜单中的“查找”功能。事实上,我经常这样做。但这肯定不是很好。 【参考方案1】:

MZ-Tools 将搜索您的代码并告诉您未使用的内容。 VBA的版本可以在here找到。

MZ-Tools 中执行您询问的具体功能是Review Source Code:

审查源代码功能允许 你要查看源代码 检测一些未使用的声明 (常量、变量、参数、 程序等)。

【讨论】:

是的:它免费、简单且非常高效。一旦您注意到使用它节省了多少时间,请像我一样:捐赠! 很遗憾不再免费 - mztools.com/v8/purchase.aspx 第 8 版是“30 天免费试用”(带有唠叨),但我不推荐它。 “审查质量”操作中的“死代码审查”选项会检查未使用的变量和过程,但也会返回垃圾(与审查检查的其余部分一样)。也许有些人想被告知在哪里放置 cmets 以及如何将变量和过程名称大写,我觉得这有点烦人,尤其是考虑到从未见过它坚持的这些命名约定。【参考方案2】:

另一种方法(因为我没有安装该软件的管理员权限)是将Option Explicit 放在模块的顶部。然后注释掉所有 Dim'med 变量,并使用 F8 调试代码或使用 Alt+d+ 重新编译l

Dims 的注释一一取消,直到Option Explicit 不返回编译器错误,此时任何仍被注释掉的变量都可以忽略,因为它们没有在您的代码中使用


与 MZ-Tools 类似,RubberDuck 有一个 VariableNotUsed Inspection(以及许多其他内容),它应该准确地显示您所追求的内容。它是免费的,从 v2.2.0.3086 开始,它支持非管理员安装。

【讨论】:

简单而实用的解决方案,在许多情况下都可以使用 (+1)。

以上是关于VBA 中是不是有办法了解未使用的变量?的主要内容,如果未能解决你的问题,请参考以下文章

有时在 Outlook VBA 中获取“对象变量或未设置块变量”

对象变量或块变量未设置访问vba [重复]

Excel VBA“对象变量或未设置块变量”

MS Access VBA - 声明变量时变量未定义错误

EXCEL VBA - 对象变量或未设置块变量

使用循环打开文件路径中的所有excel文件后,有没有办法通过vba创建工作簿变量来引用这些文件?