从 Excel VBA 编辑器中删除多个“ThisWorkbook”模块

从 Excel VBA 编辑器中删除多个“ThisWorkbook”模块

在 VBA 编辑器中,我发现了此屏幕截图中显示的“ThisWorkbook”模块的重复实例:

在此处输入图片描述

我想删除这些多余的实例,但不知道如何删除。

ThisWorkbook1现在是系统识别的模块,我的所有 Sheet 编号末尾都附加了 1,即 Sheet11、21、31、41、51、61。我不知道其他模块是如何产生的。有人可以帮忙吗?

答案1

一个 Project托管在Workbook...看到Workbook一个项目下有两个对象是非常令人担忧的(看看 VBE 使用的“幽灵工作表”的图标,似乎还有更多工作簿对象)-我建议您导出所有模块并复制理智的工作表/工作簿代码复制到新文件中(我甚至不会尝试打开鬼影副本)并销毁该副本。

您的项目很可能已在某种程度上损坏。

答案2

我知道这个页面有点旧了,但是,由于我的用户正在使用 Excel 2019/Excel 365,并且我们仍然看到这种情况每年出现几次(因此相当罕见),所以我将添加我的发现。

用户向我提出了担忧,因为他们的工作表在从网络打开时崩溃(复制到本地 PC 时可以正常工作)。当我发现幽灵工作表和额外的“此工作簿”版本时,我尝试恢复早期版本,但所有旧版本都存在类似的问题。我看到此问题的 Excel 文件是跨 WAN 使用的,它们经常在保存期间崩溃。因此,目标文件夹包含许多 *.tmp 文件。因此,我相信这是因为工作表在保存期间未正确保存/损坏而发生的。

我按照上面的 Ricardo 的解决方案解决了这个问题,因此:

  • 以新名称保存文件,不带宏(即 *.xlsx)
  • 关闭 XLSX 版本并重新打开,检查幽灵工作表和额外的“此工作簿”已消失
  • 保存启用宏的新工作表(例如 *.xlsm)
  • 将 VBA 宏从旧的破损工作表复制到新工作表(我通过创建新模块并复制/粘贴代码来实现这一点,但是,我确信导出/导入模块也可以工作)。

更高版本的损坏是宏停止工作,当我通过 VBA 编辑器查看时,代码不存在。双击工作表或模块对象没有任何反应(没有出现代码窗口,甚至没有一个空白窗口),因此损坏已蔓延到代码对象。

答案3

这是一个老问题,但我在一个大型项目中也遇到了同样的问题。

但这就是我解决这个问题的方法:

  1. 使用橡皮鸭将项目代码导出到文件夹中的工具
  2. 将文件保存为xlsx格式(无宏)
  3. 关闭并重新打开文件
  4. 将所有代码导入项目(您可以拖放类和非工作表/工作簿模块,对于后者,您可以复制粘贴代码)
  5. 另存为xlsm(启用宏)
  6. 关闭并重新打开文件

相关内容