52ky 发表于 2022-5-4 13:31:37

“拒绝访问” Excel 2019 桌面上的 Worksheet

“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.");
});
}



页: [1]
查看完整版本: “拒绝访问” Excel 2019 桌面上的 Worksheet