从损坏的 Excel 工作簿中恢复 VBA 模块

从损坏的 Excel 工作簿中恢复 VBA 模块

我有一个工作簿突然损坏了。我正尝试从中恢复 VBA 代码。我可以通过打开一个空白的 Excel 实例,然后使用 Excel 打开工作簿,在受保护的视图中打开工作簿,但是当我单击“启用编辑”或尝试从 Windows 打开工作簿时,它会挂起。

我只想恢复 VBA。但是当工作簿处于受保护视图中时,我无法查看 VBA 项目;它只是没有出现在 VBE 项目资源管理器中。

有任何想法吗?

答案1

sigil 的解决方案对我来说很有效。但是,我发现,与步骤 3-5 相比,导出模块然后将其导入所需的工作簿更安全。这还具有使宏始终可用的额外优势。

按着这些次序:

  1. 单击“开始”菜单(Windows 7 和 8),然后在搜索框中输入“excel /safe”(“开始”上方:框中有灰色的“搜索程序和文件”文本)

  2. 打开损坏的工作簿

  3. 打开 VBA 编辑器 (Alt+F11)

  4. 右键单击要恢复的模块,然后单击“导出文件...”。选择一个位置,输入名称,然后保存模块。对您需要的所有模块重复此操作。

  5. 关闭损坏的工作簿

  6. 创建新工作簿或打开要使用宏的工作簿

  7. 打开 VBA 编辑器 (Alt+F11)

  8. 右键单击具有工作簿文件名的 VBA 项目,然后选择“导入文件...”。导航到导出的 VBA 模块并单击“打开”。该模块现在将成为工作簿的一部分。

答案2

我可以通过在安全模式下启动 Excel 并将 VBA 对象复制到新书来做到这一点。

  1. 在 Win7 中,转到开始菜单,然后在搜索框中输入“excel /safe”。
  2. 打开这本损坏的书。
  3. 打开一本新书。
  4. 转到 VBA 编辑器。
  5. 将模块和类模块拖入新书的项目中。

相关内容