我只是想复制模板工作表,并在脚本识别出缺少工作表时对其进行重命名。
第8行(带有copyTo
)不起作用。我收到此错误消息:
服务错误:电子表格(第202行,文件“ statsContacts”)
关于S.O.的类似问题表明Range#copyTo有问题,但这是另一种方法。
N.B.1:在最终版本中,“ communautes”和“ feuillesExistantes”将动态生成
N.B.2:我添加了Array.prototype.includes
的polyfill才能使用它
function creerFeuillesManquantes(){
var communautes = ['ESSAI', 'TEST', 'FOO'];
var feuillesExistantes = ['Catégorie ESSAI', 'Catégorie TEST'];
for (c in communautes){
if (!feuillesExistantes.includes(communautes[c])){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var template = ss.getSheetByName('TEMPLATE');
var newSheet = template.copyTo(ss);
SpreadsheetApp.flush(); // avant de renommer, on s'assure que la copie soit faite
newSheet.setName('Catégorie '+communautes[c]);
}
}
}
答案 0 :(得分:1)
尝试更改为以下内容:
function creerFeuillesManquantes(){
var communautes = ['ESSAI', 'TEST', 'FOO'];
var feuillesExistantes = ['Catégorie ESSAI', 'Catégorie TEST'];
// move ss and template up to avoid making network calls every time
var ss = SpreadsheetApp.getActiveSpreadsheet();
var template = ss.getSheetByName('TEMPLATE');
for (c in communautes){
if (!feuillesExistantes.includes(communautes[c])){
ss.insertSheet('Catégorie '+communautes[c], { template: template });
SpreadsheetApp.flush(); // avant de renommer, on s'assure que la copie soit faite
}
}
}
我发现,当我切换到ss.insertSheet(...)
而不是template.copyTo(...)
时,我收到了更好的错误消息,例如This action would increase the number of cells in the workbook above the limit of 5000000 cells.
。