运行Google Sheet脚本时,我总是遇到以下错误:
服务超时:电子表格(第10行,文件“代码”)
脚本应该将整个工作表中的整个工作表复制并粘贴(仅值)到另一个工作表。 问题是源表非常大,这就是我猜我得到错误的原因。源代码表以编程方式填充,但通常大约8-10k行
当我在较小的数据集上使用相同的脚本时,它可以很好地工作。
不幸的是,我不是开发人员而只是营销人员,所以任何人都可以帮我优化脚本,以便在5分钟的限制下更快地运行吗?
这是脚本
function cloneGoogleSheet(ssA, ssB) {
var sss = SpreadsheetApp.openById('sheet_id');
var ss = sss.getSheetByName('Sheet1');
var SRange = ss.getDataRange();
var A1Range = SRange.getA1Notation();
var SData = SRange.getValues();
var tss = SpreadsheetApp.openById('sheet_id');
var ts = tss.getSheetByName('Script');
ts.clear({contentsOnly: true});
ts.getRange(A1Range).setValues(SData);
};
谢谢!
杰克
答案 0 :(得分:0)
试试这个
function cloneGoogleSheet(ssA, ssB) {
var targetSpreadSheet = SpreadsheetApp.openById(TARGET_SPREADSHEET_ID);
var targetSheet = targetSpreadSheet.getSheetByName(TARGET_SHEET_NAME);
targetSpreadSheet.deleteSheet(targetSheet);
SpreadsheetApp.openById(SOURCE_SPREADSHEET_ID).getSheetByName(SOURCE_SHEET_NAME).copyTo(targetSpreadSheet);
}
如果要重命名工作表,则可以使用setName()
如果我的代码中有任何错误,或者它无效,请告诉我。
参考文献:
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#deletesheetsheet
https://developers.google.com/apps-script/reference/spreadsheet/sheet#copytospreadsheet
https://developers.google.com/apps-script/reference/spreadsheet/sheet#setnamename