Мой сценарий истекает, я думаю, потому что он превышает 6-минутный лимит. Кто-нибудь знает, как я могу оптимизировать его, чтобы он работал быстрее?
Цель этого сценария - скопировать все данные с одного листа на другой лист, а затем заполнить некоторые формулы на листе назначения.
Объем копируемых данных достаточно велик (20 000 строк и столбцов в R), но я не думаю, что это так много, что это должно истечь? Я очень новичок в этом, поэтому любые советы приветствуются!
Вот сценарий:
function copyPasteTo2ndSheet()
{
var copyURL = 'ThisIsTheOriginSheetURL';
var pasteURL = 'ThisIsTheDestinationSheetURL';
var ssCopy = SpreadsheetApp.openByUrl(copyURL);
var ssPaste = SpreadsheetApp.openByUrl(pasteURL);
var copySheet = ssCopy.getSheetByName('Orders');
var pasteSheet = ssPaste.getSheetByName('Orders');
var lr = copySheet.getLastRow();
var copyData = copySheet.getRange('A2:R'+lr).getDisplayValues();
var pasteLr = pasteSheet.getLastRow();
pasteSheet.getRange('A2:R'+pasteLr).clear();
pasteSheet.getRange('A2:R'+lr).setValues(copyData);
copyPasteFormula(pasteSheet)
}
function copyPasteFormula(sheet)
{
var formulas = sheet.getRange(2, 1, 1, sheet.getLastColumn()).getFormulas()[0];
var lr = sheet.getLastRow();
for(var i in formulas)
{
var formula = formulas[i];
if(formula !== '')
{
var j = parseInt(i)+1;
sheet.getRange(3, j, lr, 1).setFormula(formula);
}
}
}