Как преобразовать строку в диапазон после ожидания 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({
    })
  };

person Ethan    schedule 06.04.2020    source источник


Ответы (1)


Вы не можете буквально изменить адрес вашего объекта range, потому что свойство address доступно только для чтения. Однако вы можете сгенерировать новый диапазон с желаемым адресом, используя Range.getOffsetRange или Range.getResizedRange.

person Rick Kirkham    schedule 06.04.2020