В этом коде есть две проблемы:
- Вы не получаете объект Sheet.
- при использовании
getRange(row, column, numRows, numColumns)
, numRows не может быть нулевым. Если numRows равен нулю, вы ничего не ссылаетесь. Минимальное значение должно быть 1.
Объяснение: SpreadsheetApp.getActive () возвращает объект Spreadsheet, но не объект Sheet. Проверьте это: https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#getActive ()
Итак, в вашем случае вместо SpreadsheetApp.getActive()
используйте SpreadsheetApp.getActiveSheet()
. (Если вы ссылаетесь на свой активный лист)
function Copiarisultati() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var val = spreadsheet.getRange('C1').getValue();
spreadsheet.getRange(18,3,0,1).activate();
spreadsheet.getRange(15,3,0,1).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};
Обратите внимание, что существует множество способов ссылки на лист без использования «Актив».
Если я хочу сослаться на вызов листа » Sheet2 "в электронной таблице, одним примером будет:
var spreadsheet = SpreadsheetApp.openByUrl("the Spreadsheet url").getSheetByName("Sheet2")
...
Пожалуйста, изучите эту документацию для получения дополнительной информации: https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange (Integer, Integer, Integer, Integer)