Скрипт для изменения размера именованного диапазона не работает динамически? - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь изменить размер именованного диапазона, который должен быть очень определенного размера (вместо обычного обновления)

Ячейка C2 содержит размер, которым должен быть новый диапазон (строки)В настоящее время = 736

Почему это работает:

function ResizeRecordRange() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.setNamedRange('RecordHistory', spreadsheet.getRange('B4:K739'));
};

Но это не работает:

function ResizeRecordRange() {
  var spreadsheet = SpreadsheetApp.getActive();
  var newLastRow = spreadsheet.getSheetByName("Record").getRange('C2').getValue();
  spreadsheet.setNamedRange('RecordHistory', spreadsheet.getRange(4,2,newLastRow,10));
};

Я ожидал, что они оба делают одно и то же, но второе(динамическая) версия кода возвращает Cannot find method getRange(number,number,number,number).

Если это поможет, я могу записать быструю формулу в ячейку C2, чтобы она содержала B4:K739 в виде строки, но тогда я не знаю, какчтобы включить это в сценарий?

1 Ответ

0 голосов
/ 12 февраля 2019

Ладно, после некоторой переделки это сработало:

function ResizeRecordRange() {
  var spreadsheet = SpreadsheetApp.getActive();
  var newLastRow = spreadsheet.getSheetByName("Record").getRange('C2').getValue();
  //spreadsheet.removeNamedRange('RecordHistory');
  spreadsheet.setNamedRange('RecordHistory', spreadsheet.getSheetByName("Record").getRange(4,2,newLastRow,10));
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...