vba - Rubberduck UI 子菜单被禁用

标签 vba vbe rubberduck

我刚刚在 Windows 10 操作系统上安装了 Rubberduck VBE 插件 v2.0.11.2453 (MSIL)。

当我在 Excel 中打开启用宏的 Excel 工作簿并启动 VBA 编辑器时,Rubberduck 启动,但 Rubberduck 菜单下的所有命令均被禁用。

我做错了什么?

enter image description here

最佳答案

Disclaimer: I'm heavily involved with the development of the Rubberduck add-in.

你没有做错=)

在早期的 alpha 2.x 版本中,我们发现在启动时启动初始解析会导致问题(严重崩溃),因为加载项本质上是在 VBE 完成项目对象模型设置之前准备就绪的(s) 加载到 IDE 中。基本上,VBE 在完全完成自身构建之前加载其加载项,因此我们不能在启动时立即启动解析任务。

因此我们禁用了初始/自动解析,这就是为什么需要手动完成(目前)。

Rubberduck 命令栏(默认情况下停靠在 IDE 顶部,主命令栏正下方)包含一个“刷新”按钮:

enter image description here

单击该按钮会将解析器状态从“Pending”/“En attente”更改为“Ready”/“Prêt”(在经历多个状态之后)。

一旦状态为“已解析”(这种状态不会持续很长时间 - 它会立即切换到“正在解析标识符”),大多数 Rubberduck 命令就会启用,并且重构会在“就绪”状态下启用(甚至在检查完成运行之前)。

您还会在代码资源管理器测试资源管理器检查结果工具条中找到“刷新”命令按钮>Todo Explorer 工具窗口。

当Rubberduck在后台工作时,您应该能够浏览/导航代码并使用VBE,但请注意,在Rubberduck解析代码时修改代码可能会导致一些解析器错误状态;我们假设 IDE 中的代码是可编译的 =)

将该按钮视为“好吧,鸭子,我已经完成了代码更改,现在与 IDE 同步”:加载项需要知道每个标记在编辑器中的确切位置才能正常工作应该。对去同步的解析器状态进行重构或应用检查快速修复绝对是一个坏主意!

也就是说,在启动时禁用所有菜单有点懒(而且也很笨拙:例如用于显示检查结果代码浏览器 即使菜单被禁用,工具窗口也将工作) - 我们将在下一个版本中修复这个问题,并且初始解析也应该再次自动(我们将使其在延迟后启动,以便给 VBE 有机会)完成启动)。

关于vba - Rubberduck UI 子菜单被禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41601588/

相关文章:

excel - 使用 VBA 激活打开的 MS Access 文件以发送 key

vba - 直接从用户窗体分配变量

vba - 使用复制函数 VBA 时应用程序定义或对象定义的错误

excel - VBA 调试器仅显示集合的 256 个元素

vba - 将 "ThisWorkbook"宏导入到另一个工作簿

excel - 设置(Private WithEvents As Sheet1)sheetUI = Sheet1 会导致错误 438 : Object doesn't support this property or method

excel - Rubberduck VBA 代码检查 : Member 'x' has a 'VB_VarHelpID' attribute with value '-1' , 但没有相应的注释

vba - 范围类的 CopyPicture 方法失败 - 使用 vbs 脚本