【问题标题】:Excel Error: Removed Records: Sorting from /xl/worksheets/sheet10.xml partExcel 错误:已删除记录:从 /xl/worksheets/sheet10.xml 部分排序
【发布时间】:2013-12-31 22:45:45
【问题描述】:

我几乎可以肯定我将不得不创建一个新的 excel 文件,但至少在这里我知道问题的根源是什么。

我的excel文件经常报如下错误:

Excel 在“filename.xlsm”中发现了不可读的内容。是否要恢复此工作簿的内容?如果您信任此工作簿的来源,请单击“是”。

所以我愿意。文件打开为已修复显示:

删除的记录:从 /xl/worksheets/sheet10.xml 部分排序。

细节是我什至没有工作表10

它是一个充满自定义对象的大型 Excel 文件。但我没有数据库连接或自动过滤器,因此无法与AutoFilter Criteria Using Array (Error) - Too Large String?xlsx error: "Removed Records: Named range from /xl/workbook.xml part" when tried to resolve errors 关联。

有人知道发生了什么吗?

提前通知

【问题讨论】:

  • 在内部,Excel 将工作表存储为 XML 文件 - 从升序编号。因此, sheet10.xml 将对应于另一个工作表。将文件重命名为.zip 并检查结构。在 xl\workbook.xml 你应该找到匹配的工作表...
  • @PeterAlbert。我确定这是显而易见的事情,但我迷路了:-)。我重命名并得到了filename.zip.xlsm,这可能不是你的意思。
  • 您需要更改 Windows 资源管理器的设置以显示文件结尾 - 然后将 .xlsm 重命名为 .zip!
  • 我遇到了使用 FreezePanes 引起的问题。注释掉该行解决了它。 Excel 2007,EPPlus。

标签: excel records vba


【解决方案1】:

在保存工作簿之前尝试清除排序。当这发生在我身上时,我的工作表引用混淆了,所以排序没有被清除

Sheets(yoursheetname).Sort.SortFields.Clear

【讨论】:

  • +1 这是一个非常简单但有用的解决方案。谢谢
  • 我认为这确实是这个问题的答案!
  • 这应该被接受为这个问题的答案!
  • 我欠你一杯你喜欢的饮料!
  • 我不明白这个答案在说什么
【解决方案2】:

恐怕我无法解释发生了什么,但我有好几次类似的经历 - 总是使用 XLSM 文件。在最近的案例中,我了解到 Excel 不喜欢使用两次相同的范围名称,当定义为工作表范围名称时(我们认为以这种方式使用它是安全的)。

我们的故障排除路径是:

  • 尝试将文件保存为 XLSB(二进制宏文件)并使用 XLSB 文件或将其保存回 XLSM
  • 检查文件历史记录(我们始终保留每日快照)并找出问题首次出现的时间;使用以前的版本并移植您的更改
  • 提取代码(通过 SVN 代码),创建一个新工作簿并将代码导入回来

通常第 1 步可以解决问题,但第 3 步从未让我们失望。

【讨论】:

  • 出于好奇:您究竟是如何提取步骤 3 中的代码的?这是手动过程吗?
  • 差不多。我们使用 SVN Excel 客户端从模块和工作表中提取代码。创建新工作簿后,将导入模块并复制工作簿代码。当然,您需要手动创建工作表并复制所有格式和名称范围。不是那么好的过程。
  • @Juliusz。第一步确实解决了问题,没有回来!
  • 请务必查看下面@Chris 的答案!
【解决方案3】:

太棒了,

这个问题一直把我逼疯了!

似乎保存为 xlsb(二进制)文件加上添加排序字段的清除似乎已经解决了我的问题。

我在 BeforeClose 子程序中添加了以下代码,它似乎可以非常快速地清除字段,更改我的仪表板并提示保存。

xlsb 文件保存超过 mb 的文件大小,加载速度似乎更快!

感谢指点和支持!

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sht As Worksheet
' Clear all Sort Fields prior to Save & Exit
For Each Sht In Application.Worksheets
    Sht.Sort.SortFields.Clear
Next Sht

aa1_Dashboard1.Select
aa1_Dashboard1.Activate

End Sub

【讨论】:

  • 你的帖子是我的救赎,谢谢,谢谢!
【解决方案4】:

按照 Chris 的首次建议,我想添加我自己关于清除电子表格中的排序字段的确认。我在 VBA 宏中使用列排序后特别出现了错误,所以我推断问题必须与列/字段排序相关。它是。 添加行: Sheets(yoursheetname).Sort.SortFields.Clear 在 sort 命令允许已排序的列保持排序后(在我的情况下),但清除了导致 “从 /xl/worksheets/sheet10.xml 部分排序。”下次打开文件时出错。

非常感谢您的支持。

【讨论】:

    【解决方案5】:

    我不知道这是否会帮助任何人,但它解决了我的问题。我有一个 Excel 表格,没什么复杂的,只是联系人,这是 Win7 上 Excel 2010 中常用的文件。今天我使用“过滤器”来选择特定组以通过电子邮件发送目标内容。在选择和复制粘贴到 Outlook 的过程中,文档出现了一个弹出窗口,就好像我正在安装某些东西一样,然后是“安装程序”,这两个我都取消了。文档关闭,然后在尝试重新打开时,我收到了错误消息。如果我选择“是”进行修复,我只得到了过滤列表的子集,所以我的 350 条记录中大约有 40 条,其余的都丢失了。我用谷歌搜索并尝试了不同的东西,包括在 Googledocs 谷歌表格中打开,但没有任何效果。我从来没有“保存”过修复的版本,因为我的旧数据不在其中。刚才,我在资源管理器中右键单击了我的文档并选择了“恢复以前的版本”,它把我带到了昨天的版本——谢天谢地,从那以后没有添加任何内容。打开那个和宾果游戏,它打开了所有数据都很好。我知道过滤器已经损坏了它,所以下次我使用它时要小心。我不知道为什么它不喜欢过滤器,但是 4 小时后,我现在可以冷静下来放松一下了!希望这对某人有所帮助。

    【讨论】:

      【解决方案6】:

      也遇到了这个问题。我有一个包含多个选项卡(可能有 30 个选项卡?)的电子表格,并且在每张工作表上都有过滤器,并在 SharedPoint 上共享。该错误未启用在 SharePoint 上编辑文件。我删除了每张工作表上的过滤器并上传回 SharePoint,问题就消失了!

      【讨论】:

        【解决方案7】:

        我做了克里斯上面提到的事情。清除电子表格中的排序字段。

        Sheets(yoursheetname).Sort.SortFields.Clear
        

        另外,将文件另存为 *.xlsb。 这应该让它工作。

        【讨论】:

          【解决方案8】:

          当您收到一条消息,告诉您 Excel 发现无法读取...时,只需单击“打开”,然后关闭您收到的所有以下消息。 - 在 VBE 中打开显示 Addin 或 .xlsm 名称的项目。单击工作簿任何模块中的任意位置,因为您要编辑宏的文本,然后单击保存,选择工作簿类型,如 Addin 选择你要保存的文件夹,给它一个新的名字然后点击“保存”,这就是你所要做的,你创建的新文件就可以了。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-07-04
            • 1970-01-01
            • 1970-01-01
            • 2017-12-22
            相关资源
            最近更新 更多