我已经做了一个Google脚本功能来为具有相同页面的多个不同电子表格更新一个特定页面。因此,该功能(从主电子表格中)获取要更改的工作表的名称和位置,然后循环浏览其他每个电子表格,并将旧的指定工作表替换为新的指定工作表。我的问题是,某些床单需要保护,但是当替换它们时,便会失去保护。
我尝试使用sheet.protect(),但收到“ TypeError:在对象Spreadsheet中找不到函数保护”。我不知道为什么在Google文档中使用类似的代码。我也尝试使用getProtections(),但也找不到该函数。
function updatePage(pageName, pagePos) {
var source = SpreadsheetApp.getActiveSpreadsheet();
var sheetToUp = source.getSheetByName(pageName);
for (i=0; i < schools.length; i++) {
//schools[i][1] provides the link to the spreadsheet
if(schools[i][1] != 0) {
sheet = SpreadsheetApp.openById(schools[i][1]);
sheetToUp.copyTo(sheet);
sheet.deleteSheet(sheet.getSheetByName(pageName));
sheet.setActiveSheet(sheet.getSheetByName("Copy of " + pageName));
sheet.renameActiveSheet(pageName);
sheet.setActiveSheet(sheet.getSheetByName(pageName));
sheet.moveActiveSheet(pagePos);
var protection = sheet.protect(); //problem
}
}
}
它应该在学校[i] [1]中链接的电子表格中的位置pagePos处输出名称为pageName的新受保护工作表。它输出此内容,但不受保护。