У меня есть большая электронная копия, которую я копирую и вставляю в более десятка других электронных таблиц, используя синхронизируемый триггер каждый день. Скрипт работает для всех, но не для одной таблицы в частности:
https://docs.google.com/spreadsheets/d/1NJfCbZjqpLCxNniJ96QiT_51y0Hd11H36SuFTyTVB_A/edit?usp=sharing
Для этого листа в качестве примера функционирующего сценария требуется около 30 секунд и он работает:
https://docs.google.com/spreadsheets/d/1tbnQYQrwfKN9yk48e5g48Lj18tLmE9iEYL6U80e4DMs/edit?usp=sharing
Для первого листа время ожидания истекло. Моя цель - заставить его работать на самом деле!
Превратил это в массив, который сократил время только из копии значений, но это не помогло первой ссылке выше.
//code that times out
function CopyDataToNewFile7() {
const source = SpreadsheetApp.openById('1sX6VTyedVLBL57EMSuD7cqUwe9GzoCRajLZhA1ZBJ3Q').getSheetByName('Final'); // sss = source spreadsheet
const destination8=SpreadsheetApp.openById('1NJfCbZjqpLCxNniJ96QiT_51y0Hd11H36SuFTyTVB_A');//Jordan fixed
const target8 = destination8.getSheetByName('All Team Data')
const dataToCopy = source.getDataRange().getValues();
result = [];
for (i=0; i<dataToCopy.length;i++){
result.push(dataToCopy[i]);
}
target8
.getRange(1,1,result.length,result[0].length).setValues(result);
}
//code that works
function CopyDataToNewFile8() {
const source = SpreadsheetApp.openById('1sX6VTyedVLBL57EMSuD7cqUwe9GzoCRajLZhA1ZBJ3Q').getSheetByName('Final'); // sss = source spreadsheet
const destination15=SpreadsheetApp.openById('1tbnQYQrwfKN9yk48e5g48Lj18tLmE9iEYL6U80e4DMs');//Mandee
const target15 = destination15.getSheetByName('All Team Data');
const dataToCopy = source.getDataRange().getValues();
result = [];
for (i=0; i<dataToCopy.length;i++){
result.push(dataToCopy[i]);
}
target15
.getRange(1,1,result.length,result[0].length).setValues(result);
}
Следует скопировать и вставить не более минуты, но это не так и время ожидания истекло. Есть мысли?
Я вижу сообщение об ошибке: Тайм-аут службы: электронные таблицы (строка 266, файл "Код")
Строка кода:
.getRange(1,1,result.length,result[0].length).setValues(result);