我几乎肯定我必须创建一个新的excel文件,但至少在这里我可以得到一些想法是什么问题的来源。
我的Excel文件经常出现以下错误:
Excel在'filename.xlsm'中找到了不可读的内容。你想恢复这个工作簿的内容吗?如果您信任此工作簿的来源,请单击“是”。
所以我这样做。文件打开后显示为:
删除记录:从/xl/worksheets/sheet10.xml部分排序。
细节是我甚至没有sheet10
它是一个充满自定义对象的大型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相关联。
任何人都知道发生了什么事?
事先提前答案 0 :(得分:20)
在保存工作簿之前尝试清除排序。当这件事发生在我身上时,我的表格参考文件已经混淆了,所以排序没有被清除
Sheets(yoursheetname).Sort.SortFields.Clear
答案 1 :(得分:8)
我恐怕无法解释发生了什么,但我有过几次类似的经历 - 总是使用XLSM文件。在最新的案例中,我了解到Excel不喜欢使用两次相同的范围名称,当定义为Worksheet范围名称时(我们假设以这种方式使用它是安全的)。
我们的问题排查路径是:
通常第1步解决问题,但步骤3从未让我们失望。
答案 2 :(得分:1)
太棒了,
这个问题让我发疯了!
似乎保存为xlsb(二进制)文件PLUS添加清除排序字段似乎已经解决了我的问题。
我将以下代码添加到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
答案 3 :(得分:0)
我不知道这是否会对任何人有所帮助,但它解决了我的问题。我有一个excel表,没有什么复杂的,只是联系人,在Win7上的Excel 2010中使用得很多的文件。今天我使用“过滤器”来选择要将目标内容通过电子邮件发送到的特定组。在选择和复制粘贴到Outlook的过程中,文档出现了一个弹出窗口,好像我正在安装一些东西,然后是“安装程序”,这两个我都取消了。文档关闭,然后尝试重新打开,我收到错误消息。如果我选择“是”来修复,我只得到了我的过滤列表的子集,因此我的350条记录中有40条记录,其余的丢失了。我用谷歌搜索并尝试了不同的东西,包括在Googledocs谷歌表中打开,没有任何效果。我从来没有“保存”修复过的版本,因为我的旧数据不在那里。刚才,我在资源管理器中右键单击了我的文档并选择了“恢复以前的版本”并将它带到了昨天的版本 - 幸运的是,从那以后没有添加任何内容。打开那个和宾果游戏,它打开了很好的所有数据。我知道过滤器损坏了它,所以下次使用它时会很谨慎。我不知道为什么它不喜欢过滤器,但4小时后,我现在可以冷静下来放松!希望这有助于某人。
答案 4 :(得分:0)
也遇到了这个问题。我有一个包含多个标签的电子表格(可能有30个标签?),并在每张标签上都有过滤器,并在SharedPoint上共享。该错误无法在SharePoint上编辑文件。我删除了每张工作表上的过滤器并上传回SharePoint,问题就消失了!
答案 5 :(得分:0)
我做了克里斯上面提到的。清除电子表格中的排序字段。
Sheets(yoursheetname).Sort.SortFields.Clear
另外,将文件另存为* .xlsb。 这应该让它发挥作用。
答案 6 :(得分:0)
当您收到消息告知Excel发现不可读时....只需单击“打开”,然后关闭所有以下消息即可。 - 在VBE中打开显示Addin或.xlsm名称的项目..当您要编辑宏的文本时,单击工作簿任何模块中的任意位置,然后单击保存,选择工作簿类型,如Addin选择要保存它的文件夹,给它一个新名称,然后单击“保存”,这就是你要做的全部,你创建的新文件就可以了。
答案 7 :(得分:0)
我想在电子表格中添加关于清除排序字段的确认信息,如Chris首先建议的那样。我在VBA宏中使用列排序后特意发生了错误,因此我推断问题必须是列/字段 - 排序相关。它是。 添加行: 表(yoursheetname).Sort.SortFields.Clear 在sort命令允许排序的列保持排序(在我的情况下),但清除导致的任何原因 “从/xl/worksheets/sheet10.xml部分排序。”下次打开文件时出错。
非常感谢您的支持。