Я запустил небольшой запущенный по времени скрипт для копирования одного листа из таблицы в другую.Это работало месяцами, но теперь я получаю сообщение об ошибке в последней строке:
ts.getRange(A1Range).setValues(SData);
Не удалось сохранить документ с идентификатором DESTINATIONURLID: документ слишком большой.(строка 37, файл «Код»)
Я убедился, что исходная электронная таблица не слишком велика - ее длина составляет всего 2000 строк и 65 столбцов.У меня достаточно места на диске Google, чтобы хранить все.
Я попытался запустить скрипт вручную, без синхронизированного триггера, и получил ту же ошибку.Если я просто копирую и вставляю значения, это также работает.
Одна идея, которая у меня возникла, заключается в том, что это может быть связано с тем, что история версий становится очень большой из-за других сценариев, которые автоматически обновляют исходную электронную таблицу.Я решил, что setValues не перенесет историю версий.
Не знаете, что еще здесь попробовать, есть идеи?Спасибо за помощь!Ниже приведен полный код.
// Copy data from Google Sheet A to Google Sheet B
// Credit: https://ctrlq.org/code/20239-copy-google-spreadsheets for most of this code.
function cloneGoogleSheet() {
//Source breadsheet id:
var ssA = 'SOURCEURLID';
//Destination breadsheet id:
var ssB = 'DESTINATIONURLID';
// source doc
var sss = SpreadsheetApp.openById(ssA);
// source sheet
var ss = sss.getSheetByName('Dashboard Metrics Source');
// Get full range of data
var SRange = ss.getDataRange();
// get A1 notation identifying the range
var A1Range = SRange.getA1Notation();
// get the data values in range
var SData = SRange.getValues();
// target spreadsheet
var tss = SpreadsheetApp.openById(ssB);
// target sheet
var ts = tss.getSheetByName('DataSauce');
// Clear the Google Sheet before copy
ts.clear({contentsOnly: true});
// set the target range to the values of the source data
ts.getRange(A1Range).setValues(SData);
};