#google-apps-script #google-sheets-api
Вопрос:
Я хочу скопировать значения ячеек из b1 в b2, но я получаю ошибку, пожалуйста, помогите, как это исправить
function recordHistory() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var inputSheet = ss.getSheetByName("b1");
var source = inputSheet.getRange('B3','D3','F3','H3','J3','L3','N3','P3','R3','T3','V3');
var values =
source.getValues();
var outputSheet = ss.getSheetByName("b2");
outputSheet.getRange(outputSheet.getLastRow() 1,1,values.length,values[0].length).setValues(values);
};
Исключение: Параметры (Строка,Строка,Строка,Строка,Строка,Строка,Строка,Строка,Строка,Строка,Строка, Строка, Строка, Строка) не соответствуют сигнатуре метода для SpreadsheetApp.Sheet.getRange.
История записей @ RecordPercent.gs:6
Ответ №1:
Вам следует рассмотреть возможность использования Sheet.getRangeList()
Метод Sheet.getRange() имеет четыре метода, которые принимают до четырех параметров, и все они описаны на этой странице
function getAndSetValueWithRangeList() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('b1');
const osh = ss.getSheetByName('b2');
let rlA = sh.getRangeList(['B3', 'D3', 'F3', 'H3', 'J3', 'L3', 'N3', 'P3', 'R3', 'T3', 'V3']);
rlA.getRanges().forEach((r,i)=>{osh.getRange(r.getA1Notation()).setValue(r.getValue());});
}