excel - 在 office-addin 运行时编辑单元格时 Excel 崩溃
问题描述
我已经有几个 Excel 崩溃的案例。
起点是 Office 插件目前正忙于执行更持久的操作(在所有工作表中搜索函数,随后从服务器检索数据并将此数据写入 Excel)。如果您在此期间单击一个单元格并输入一个值,您将得到一个“InvalidOperationInCellEditMode”,如果您当前正在 Excel.run(asyn context ... - 插件中的范围内工作。Excel 的崩溃不会总是发生,有时需要几十次。
但是,对于当前在 Excel 中使用插件的用户来说,这样的崩溃总是很烦人。顺便说一句,如果您捕获 Excel.run 范围,它也无济于事,即使 Excel 崩溃。
解决方案
编辑模式使任何 API 调用失败的事实是一个“已知问题”,并且无法真正修复——即使 VBA 对 [大多数] API 调用也表现出同样的问题。并且功能区中的大多数操作都被禁用。Office 加载项 API 也是如此。
因此,当进入单元格编辑模式时,API 调用失败并抛出异常InvalidOperationInCellEditMode
是设计使然
有一种解决方法不确定您是否可以在您的场景中利用:
Excel.run
有一个接收RunOptions
对象的重载。这包含一组在函数运行时影响平台行为的属性。有一个属性:delayForCellEdit
确定Excel是否延迟批处理请求,直到用户退出单元格编辑模式。当为 true 时,批处理请求会延迟并在用户退出单元格编辑模式时运行。当为 false 时,如果用户处于单元格编辑模式,批处理请求会自动失败(导致错误到达用户)。delayForCellEdit
未指定属性的默认行为等效于它为 false 时的行为。
对于崩溃问题,我实际上无法重现它。如果您能分享更多关于复制信息的提示,那就太好了,谢谢。
推荐阅读
- r - R按组过滤值填充新列
- git - Jenkins CI/CD 在服务器上执行 git pull 后运行脚本
- javascript - 在 immer.js 草稿中使用记忆值
- javascript - 懒加载谷歌地图
- outlook - 如何在 OWA 中为邮件添加自定义属性?
- java - Android Studio Firebase 数据库 DataSnapshot 返回 null
- uwp-xaml - 无法在发布模式下使用 .Net Native 编译 UWP
- typescript - 为什么实时数据库不更新?
- android - 试图从谷歌地图获取纬度是通过 Android 中的意图返回 null
- python-3.x - 在 lmfit 中考虑实验误差