删除 VBA 中不存在的工作表

Posted

技术标签:

【中文标题】删除 VBA 中不存在的工作表【英文标题】:Remove a non-existant Sheet in VBA 【发布时间】:2014-06-30 19:43:14 【问题描述】:

我在 Excel 工作簿中列出了实际上并不存在的工作表。当您查看代码并查看 VBA 部分中的工作表列表时,会列出工作表,但它们实际上根本不存在于工作簿中。它们也没有隐藏,以防有人想到这一点。

这些工作表也没有括号中的名称,看起来与 ThisWorkbook 的图标相同。我没有办法删除它们并且一直在尝试。有人对如何从 VBA 部分删除它们有任何建议吗?请记住,这些工作表实际上并不存在,因此我不能在 Excel 中右键单击它们并选择删除。我确实尝试在 VBA 中右键单击工作表并选择删除工作表,但该选项显示为灰色。实际上删除工作表在所有工作表上都是灰色的,即使是那些确实存在的工作表。电子表格也不受任何保护。

这些工作表不会引起任何问题,更令人烦恼的是,因为我知道它们实际上并不存在,而且我无法从 VBA 中删除它们。我附上了一张我正在查看的图片。我要删除的工作表是 Sheet10、Sheet11 和 Sheet9。

【问题讨论】:

看来我们需要知道如何重现问题才能知道如何解决它......但可能重现问题将使用与解决问题相同的属性! 【参考方案1】:

我曾经遇到过同样的情况。我找到的唯一解决方案是将所有“真实”工作表复制到新工作簿中。我猜原来的工作簿不知何故损坏了。

【讨论】:

我很害怕,我也在想这个。我希望其他人有进一步的建议。谢谢。 @Chris 我刚刚注意到您的问题和我的问题之间的另一个相似之处。查看错误工作表旁边的图标。它是一个工作图标,而不是工作表图标。 嗨,罗恩,是的,我注意到了。我在最初的问题中提到了这一点。我也觉得这很奇怪。好吧,很高兴知道这也是发生在你身上的事情。我想唯一的解决方案是重新创建,我在发布问题之前就想到了,但希望有人可能有一个更简单或更好的解决方案。感谢您的帖子。【参考方案2】:

我在接下来的步骤中解决了这样的问题:

    在其他地方备份您的文件 将扩展名 .xlsm 更改为 .zip 解压压缩包 转到 /xl 文件夹 在记事本中打开 workbook.xml 在某个地方,每个“gost”表都隐藏了参数。 用任何内容替换完整的命令参数(我不记得 结构体。像'状态:“隐藏”'。删除所有这些) 压缩所有提取为 ZIP 的文件和文件夹。 将 zip 文件重命名为 .xlsm 打开看看是否解决

【讨论】:

【参考方案3】:

有一个更简单的方法.... 右键单击当前选项卡之一,然后选择“取消隐藏”。 这将显示所有“隐藏”标签的列表。 取消隐藏它们,然后删除它们。 删除后,它们将从 VBAProject 列表中删除。

【讨论】:

【参考方案4】:

我知道这是一篇旧帖子,但我找到了解决方案。 如果您查看“幻影”表的属性,您会注意到它的“可见”属性是 2 - xlSheetVeryHiddden。只需将该属性更改为 -1 - xlsheetVisible 即可将其删除。

【讨论】:

错误项目是工作簿,而不是工作表,并且此选项不适用于工作簿...这是将来完全锁定工作表以防窥探的方便提示...

以上是关于删除 VBA 中不存在的工作表的主要内容,如果未能解决你的问题,请参考以下文章

如何使用VBA选中工作表中不带公式的单元格,谢谢

在VBA中将行从工作表复制和删除到多个工作表

VBA - 删除每张工作簿上的每 N 行(每张工作表 100k+ 值)

VBA 如何批量将单元格复制到另一个工作表中

Excel VBA 在工作表中插入/删除行

奇怪的 excel-vba 运行时错误,不会删除现有工作表