Microsoft Excel 无缘无故地修复我的 .xlsm 文件,并消除了 sheet 上的数据验证

Microsoft Excel keeps repairing my .xlsm file for no apparent reason and eliminates data validations on a sheet

我最近创建了一个自动化的 Excel 实用程序(使用 Microsoft Office 2019),我在其中广泛使用了数据验证、VBA 代码、命名范围和格式。它运行良好,直到有一天我收到一条 Excel 提示消息,内容为:

当我点击 Yes 时,它给我另一个弹出窗口,上面说它恢复了文件,还给我一个 link 到错误日志 XML 文件.我单击它并使用我的默认浏览器打开 .xml 文件,它显示了以下详细信息:

看起来它正在从特定 sheet 中删除数据验证,当我导航到 UI 中的那个 sheet 时,我意识到这是真的。为了解决 Excel 应用程序强制执行的这种无根据和重复的数据验证删除,我创建了一个宏代码,它将根据需要重新设置所有这些数据验证。当这个 Excel 文件在另一台计算机上用 Microsoft Office 365 打开时,真正的问题就出现了。看起来它不仅要删除数据验证,还要删除命名范围和按钮等其他组件。可能还有其他东西可能会被删除,我目前还不知道。因此,为恢复数据验证而创建的宏不再有用。

为什么会出现这个问题?为什么 Excel 的不同版本表现不同?我该如何解决这个问题?感谢您的帮助。谢谢!

正如 Ron Rosenfeld 和 e_conomics 正确建议的那样,问题出在数据验证列表上,其来源是超过 255 个字符的逗号分隔值字符串。显然,这是 Excel.

的限制

当我用包含相应值的范围替换数据验证列表的来源(逗号分隔值的字符串)时,问题自行解决。修复对话再也没有出现。