Excel错误:删除记录:从/xl/worksheets/sheet10.xml部分排序

14 excel vba records excel-vba

我几乎肯定我将不得不创建一个新的excel文件,但至少在这里我得到一些想法是什么问题的根源.

我的excel文件经常出现以下错误:

Excel在'filename.xlsm'中找到了不可读的内容.你想恢复这个工作簿的内容吗?如果您信任此工作簿的来源,请单击"是".

所以我这样做.文件打开后显示为已修复:

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

细节是我甚至没有sheet10

它是一个充满自定义对象的大型excel文件.但是我没有数据库连接或自动过滤,因此无法与使用数组的自动筛选条件(错误) - 太大的字符串相关联?xlsx错误:"删除记录:/xl /workbook.xml部分的命名范围",当试图解决错误时.

有人知道发生了什么事吗?

请提前

小智 26

在保存工作簿之前尝试清除排序.当这件事发生在我身上时,我把我的纸张参考文件混淆了,所以排序没有被清除

Sheets(yoursheetname).Sort.SortFields.Clear
Run Code Online (Sandbox Code Playgroud)

  • 这应该被接受作为这个问题的答案! (4认同)
  • 我认为这确实是这个问题的答案! (3认同)
  • +1这是一个非常简单但有用的解决方案。谢谢 (2认同)

Jul*_*usz 10

我恐怕无法解释发生了什么,但我有过几次类似的经历 - 总是使用XLSM文件.在最新的案例中,我了解到Excel不喜欢使用两次相同的范围名称,当定义为Worksheet范围名称时(我们假设这样使用它是安全的).

我们的故障排除路径是

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

通常步骤1解决了问题,但步骤3从未让我们失望.


Bor*_*sNZ 6

惊人的,

这个问题已经快把我逼疯了!

看来,保存为 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
Run Code Online (Sandbox Code Playgroud)