Проблемы с контекстом функции в сценариях Office

У меня проблема с вызовом функции в основном скрипте при сохранении контекста Excel

async function main(context: Excel.RequestContext){ findMD(1) }

Функция findMD(test) содержит различные диапазоны, взятые из context.workbook и из-за того, что функция определена вне main Я получаю cannot find name 'context'ошибка. Чтобы попытаться решить эту проблему, я изменил function findMD(test){ к async function findMD(context: Excel.RequestContext,test){. Однако, хотя он решил ошибки контекста, я все еще не могу запустить скрипт, потому что вызов функцииfindMD(1) теперь получает сообщение об ошибке Expected 2 arguments but got 1

Был бы серьезно признателен за любую помощь, которую можно было бы предложить, так как это меня убивает! Спасибо!

1 ответ

Решение

Когда вы определяете функцию findMD(), которая принимает контекст в качестве входного параметра, вам также необходимо указывать этот параметр всякий раз, когда вы его вызываете. Вот пример вспомогательной функции, которая принимает в качестве входных данных объект контекста, а также второй параметр, что очень похоже на то, что вы пытаетесь сделать.

async function helper(context: Excel.RequestContext, test) {
  let workbook = context.workbook; 
  let worksheets = workbook.worksheets;
  let selectedSheet = worksheets.getActiveWorksheet();

  selectedSheet.load("name");
  await context.sync();

  console.log( selectedSheet.name);
  console.log( test);
}

async function main(context: Excel.RequestContext) {
  helper(context,"test parameter");
}

Внутри main(), когда я вызываю helper(), я передаю как объект контекста, так и значение параметра test, которое я хочу, чтобы функция увидела.

Другие вопросы по тегам