Как передать диапазон ячеек в качестве параметра функции в Apps Script
Мне нужно произвести какую то операцию над диапазоном ячеек (например А1:А10). Есть функция getRange() и вроде бы всё просто, но что если количество строк в таблице будет меняться и например диапазон изменится.
Пробовал так:
functon sumElements (range) {
let ss = SpreadsheetApp.getActiveSpreadsheet();
let currSheet = ss.getActiveSheet();
let dinamicRange = ss.getRange(range).getValues;
}
но компилятор ругается на параметр range в getRange()
Ответы (1 шт):
Все прекрасно работает, если исправить ошибки:
- Не
functon, аfunction(допускаю опечатку) - Не
ss.getRange(range), аcurrSheet.getRange(range) - После
.getValuesнужны скобки()
таким образом код выглядеть должен так:
function sumElements (range='A1') {
let ss = SpreadsheetApp.getActiveSpreadsheet();
let currSheet = ss.getActiveSheet();
let dinamicRange = currSheet.getRange(range).getValues();
Logger.log(dinamicRange);
}
ну и в качестве аргумента вы можете передавать свой диапазон. Пример вызова из другой функции:
function start () {
sumElements('A1:A10');
}
UPD
Если вы хотите передавать диапазон из самой таблицы в качестве параметра, то в принципе не нужно .getRange(range), range уже будет содержать массив с переданными данными. Далее можете проводить с ним необходимые действия:
function sumElements (range) {
const arr = range.map((x) => x * 2);
return arr;
}
