我一直在运行一个时间触发的脚本,以将一张工作表从电子表格复制到另一张工作表。它工作了几个月,但现在我在最后一行遇到了错误:
ts.getRange(A1Range).setValues(SData);
无法保存ID为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);
};