感谢这个问题:已禁用Rubber鸭UI子菜单。,我知道我可能必须按下“刷新按钮”才能使用RubberduckVBA。
其中一个可以跟随的错误显然是"Resolver错误“。

这样的解析器错误可能发生的不同情况是什么?
发布于 2018-08-31 08:08:11
至少有一种情况是:
A函数或Sub不编译,而且开发人员在运行VBA项目时不知道这一点,因为Sub从未被调用过。
解决方案:
这个“垃圾”代码可以在Rubber鸭的 跟踪级日志 .中找到。
以我为例:
Sub CleanSheetOut()
Worksheets(sheetOut).Range("A1:XFD10485576").Clear
Worksheets(sheetOut).Range("A1:XFD10485576").Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End Sub...was不正确(没有编译),但从未被调用,因此项目运行良好,但Rubber鸭子无法解决。
正确的代码:
Sub CleanSheetOut()
Worksheets(sheetOut).Range("A1:XFD10485576").Clear
With Worksheets(sheetOut).Range("A1:XFD10485576").Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub...compiles并让Rubber鸭正常地解析和解析。
原木:

..。显示了故障子和在哪个模块我可以找到它。
Rubber鸭子开发团队的洞察力:
VBE是否动态编译取决于Tools->Options菜单编辑器选项卡右下角的编译设置。 我们实际上尝试编译项目,并警告用户项目不编译。然而,前面提到的VBE设置可能会对此产生干扰。此外,刷新前的编译可能会在Rubber鸭子自己的设置中被停用。
有关更多细节,请参见此Github螺纹。
发布于 2018-08-29 16:12:24
TL;DR: Rubber鸭子已经过了一个新的“官方”版本!
免责声明:我管理并贡献给Rubber鸭开放源码软件项目。
在遍历解析树时抛出异常。很难确切地知道发生了什么,因为parsing+resolving VBA代码是非常复杂的多步过程。
要找出具体的错误所在,您需要查看日志--默认情况下禁用日志记录(相当冗长),需要通过“设置”对话框启用它:

将解析器/解析器正在执行的所有操作的全部血淋淋的详细信息设置为跟踪,或者将只包含异常信息的较少冗长的日志设置为Error;然后您可以将此日志(或其中的一部分)发布到新发行中,项目开发人员将及时标记/标记它,检查日志/异常详细信息,并确定该问题是否在稍后的预发行版构建中修复,或者它是否是一个需要修复的新错误。
由于几乎每个特性都需要对VBE中的代码有一个准确的理解,Rubber鸭开发人员非常重视解析器/解析器问题。
如果您使用的是最新的“绿色”版本(v2.2.0),那么我非常肯定这个问题从那时起就已经解决了。最新的“预发行版”构建在自动完成功能方面存在恼人的问题(肯定会在v2.3.0中修复),但是解析器现在运行得很好:)
https://stackoverflow.com/questions/52081487
复制相似问题