Проблемы с контекстом функции в сценариях 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, которое я хочу, чтобы функция увидела.