【问题标题】:How to Convert String to Range After Awaiting Context.sync?等待 Context.sync 后如何将字符串转换为范围?
【发布时间】:2020-07-18 21:47:11
【问题描述】:

在下面的异步函数中,我在 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({
    })
  };

【问题讨论】:

    标签: excel typescript asynchronous office-js office-js-helpers


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多