Excel继续加载我的电子表格时出现错误

当我加载我的电子表格时,我一直收到这个错误。 它使我修复它,剥离所有的validation器。 该文件被保存为xlsm。

“在Excel中发现不可读的内容你是否想恢复这个工作簿的内容?如果你信任这个工作簿的来源,点击是”

您必须单击是或否将不加载。 然后我得到这个错误。 “Excel能够通过删除或修复不可读的内容来打开该文件。”删除的function:从/xl/worksheets/sheet1.xml部分进行数据validation“

我对此一无所知,这实在令人烦恼。 如果有人有任何build议,我将非常感激。 谢谢,詹姆斯

当我在Data Validation对话框中定义了一个长的Data Validation列表时(虽然现在不能再生成),我得到了这个错误。 如果在对话框中有很长的列表,请尝试将列表移动到一个范围,然后再引用范围。

我的工作簿中只有这个问题。 我发现这个链接最有帮助 – https://stackoverflow.com/a/21483680/3653412

尽pipe接受的答案最终会解决这个问题(重build工作手册),但这需要花费大量的时间。 清理sortfields最终解决了我的问题。

Sub clearSortFields() Dim ws as worksheet ThisWorkbook.Activate For Each ws In Worksheets ws.Sort.SortFields.Clear Next ws End Sub 

这是我所做的修复工作,我在工作簿中的另一个工作表的列中填写了我想要的内容,然后引用该工作表。 我做了表名我引用SheetName的名单(只是把你的工作表名称在这里)和A2:A19引用参考表的单元格。 如果需要的话,这也使编辑列表变得更容易。

 Sub Test() Worksheets("Sheet1").Activate With rng.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=SheetName!$A$2:$A$19" 'Replace SheetName and the range with yours End With End Sub 

通过删除validation单元并再次运行用于在打开的工作簿上重新validation的代码可解决此问题

 Sub RemValidation() Dim ARows As Variant Dim i As Double ARows = Split("C3,C4,C5,C6,C14,C19,C20,C25,F4", ",") For i = 0 To UBound(ARows) ThisWorkbook.Sheets("WO").Range(ARows(i)).Validation.Delete Next End Sub