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

Is there a way in VBA to know about variables that aren't being used?

提问人:Lance Roberts 提问时间:10/10/2008 最后编辑:GreedoLance Roberts 更新时间:4/25/2021 访问量:10873

问:

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

VBA Excel 变量 VBE

评论

5赞 Greedo 8/24/2018
我不认为这个问题应该被搁置;接近的理由是“[问题是]要求我们推荐 [...]工具[...]或其他场外资源”。事实上,这个问题是针对MS-Excel内置编辑器(VBE)中的工具的,而不是要求第三方工具或异地资源。尽管答案中提供的某些选项依赖于第三方工具,但我认为这并不一定使它们成为“固执己见的答案”“垃圾邮件”。事实上,我给出的答案之一直接在VBE中工作,无需任何额外的工具。
1赞 Excel Hero 5/6/2020
这是一个很好的问题。请重新打开它。
0赞 Lance Roberts 5/7/2020
@ExcelHero,现在完成了。这个问题不是关于寻找工具,即使这是最好的答案。我希望有一个内部的VBA编辑器方法。
0赞 Excel Hero 5/7/2020
我希望有办法。您始终可以使用“编辑”菜单中的“查找”功能。事实上,我经常这样做。但这肯定不是很好。

答:

21赞 Jon Fournier 10/10/2008 #1

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

MZ-Tools 中执行您询问的特定功能是查看源代码

“查看源代码”功能允许 您可以查看源代码以 检测一些未使用的声明 (常量、变量、参数、 程序等)。

评论

2赞 Philippe Grondier 10/10/2008
是的:它是免费的,简单的,而且非常高效。一旦你注意到你通过使用它节省了多少时间,请像我一样:捐赠!
2赞 Darren Bartrup-Cook 4/5/2017
不幸的是不再免费 - mztools.com/v8/purchase.aspx
1赞 ashleedawg 5/25/2018
版本 8 是“30 天免费试用”(有唠叨),但我不推荐它。“检查质量”操作中的“死代码检查”选项会检查未使用的变量和过程,但也会返回垃圾(与检查的其余部分一样)。也许有些人想被告知在哪里放置注释以及如何大写他们的变量和过程名称,我发现这有点烦人,特别是考虑到从未见过它坚持的这些命名约定。
13赞 Greedo 4/5/2017 #2

另一种方法(因为我没有安装该软件的管理员权限)是放在模块的顶部。然后注释掉所有 'med 变量,并使用Option ExplicitDimF8Alt+d+l

逐个取消注释,直到不返回编译器错误,此时可以忽略任何仍注释掉的变量,因为它们不会在代码中使用DimOption Explicit


与 MZ-Tools 类似,RubberDuck 有一个 VariableNotUsed 检查(以及许多其他东西),它应该准确地显示您想要什么。它是免费的,从 v2.2.0.3086 开始,它支持非管理员安装。

评论

0赞 Fredrik 7/7/2021
愚蠢地简单但实用的解决方案,在许多情况下都应该有效(+1)。