Office 脚本中函数上下文的问题

Issues with function context in Office Scripts

我在维护 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

的错误消息

非常感谢能提供的任何帮助,因为这让我很痛苦! 谢谢!

当您定义 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() 时,我传入了上下文对象以及我希望函数看到的测试参数的值。