Ошибка «AccessDenied» в событии WorksheetCollection.onActivation на рабочем столе Excel 2019 - PullRequest
1 голос
/ 14 апреля 2020

Мой клиент использует событие «WorksheetCollection.onActivation» для обновления информации, когда пользователь изменяет рабочий лист. они обнаружили, что в некоторых версиях офиса при попытке установить это событие надстройка получает ошибку «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 и Ma c. Мой клиент видит проблему «Отказано в доступе» в Excel 2019 Desktop версия 16.0.10356.2006

Интересно, что : событие onAdded / onDeactivation отлично работает на рабочем столе Excel 2019

Снимок экрана ошибки: enter image description here

Есть ли у кого-нибудь какие-либо идеи по этому вопросу?

1 Ответ

1 голос
/ 15 апреля 2020

Это известная проблема, и исправление выходит.

В качестве временного решения, пожалуйста, добавьте код ниже к той же партии sheets.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.");
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...