如何在等待 Context.sync 后将字符串转换为范围?

How to Convert String to Range After Awaiting Context.sync?

在下面的异步函数中,我在 Excel 中获取活动单元格,然后加载行索引。在 context.sync 之后,我创建了一个名为 "newRange" 的字符串。有没有办法可以将当前范围设置为我的 "newRange"?我需要将 newRange 转换为一个范围。

例如,如果我的活动单元格是 Sheet1!B8,那么我的 "newRange" 将是 "Sheet!A8:E8"。找到这个之后,我需要将它转换为一个范围并加载该地址并再次等待 context.sync() 。那么如何将 "newRange" 转换为一个范围呢?

  addToBOM = async () => {
    try {
      await Excel.run(async context => {
        let range = context.workbook.getActiveCell();
        range.load("rowIndex");
        range.format.fill.color = "yellow";
        await context.sync();
        let newRange = (`Sheet1!A${range.rowIndex}:E${range.rowIndex}`);
        console.log(newRange)
      });
    } catch (error) {
      console.error(error);
    }
    this.setState({
    })
  };

您不能直接更改 range 对象的地址,因为地址 属性 是只读的。但是,您可以使用 Range.getOffsetRange method or the Range.getResizedRange 方法生成具有所需地址的新范围。