“AccessDenied”Excel 2019桌面上的WorksheetCollection.onActivated事件出错
问题
我的客户使用“WorksheetCollection.onActivated”;用户更改工作表时更新信息的事件。他们发现在某些版本的 Office 上,加载项收到错误“AccessDenied”。尝试设置此事件时。
- async function registerOnActivateHandler() {
- await Excel.run(async (context) => {
- let sheets = context.workbook.worksheets;
- sheets.onActivated.add(onActivate);
- await context.sync();
- console.log("A handler has been registered for the OnActivate event.");
- });
- }
复制代码
该代码在 Excel Online 和 Mac 上运行良好,客户报告“拒绝访问”。 Excel 2019 桌面版 16.0.10356.2006 上的问题
有趣的是:
onAdded/onDeactivated 事件在 Excel 2019 桌面上运行良好
错误截图:
有人对这个问题有任何见解吗?
回答
这是一个已知问题,正在推出解决方案。
作为临时解决方案,请在同一批工作表中添加以下代码。onActivated.add(onActivate) 解决问题。
- // Call Write Operation APIs, bellow two line code equal to no-op.
- let eventobj = sheets.onDeactivated.add(onDeactivate);
- eventobj.remove();
复制代码
例如,您的代码需要更新为
- async function registerOnActivateHandler() {
- await Excel.run(async (context) => {
- let sheets = context.workbook.worksheets;
- sheets.onActivated.add(onActivate);
- // Call Write Operation APIs, bellow two line code equal to no-op.
- let eventobj = sheets.onDeactivated.add(onDeactivate);
- eventobj.remove();
- await context.sync();
- console.log("A handler has been registered for the OnActivate event.");
- });
- }
复制代码
|