由于stackoverflow的帮助,Soooo关闭了这一点:)
以下代码基于模板复制工作表,并将保护范围权限从模板工作表复制到新工作表。
但是,权限范围现在在新工作表中,但没有同一用户。
模板工作表只有一个用户可以编辑,但是对于新工作表,虽然限制了相同的范围,但是整个电子表格中的所有用户都可以编辑新工作表。
有人碰巧知道我是否可以使其与模板完全相同吗?而且不像启动脚本的用户,而是与模板相同的用户。这是代码:
function newSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("New Sheet Template");
var protections = sheet.getProtections(SpreadsheetApp.ProtectionType.RANGE);
var dateI = Browser.inputBox('Enter Date: ','(DD/MM/YYYY)', Browser.Buttons.OK_CANCEL);
var nameSheet= "Sheet - "+dateI
if (dateI == "cancel" ) {
}
else {
ss.insertSheet(nameSheet, {template: sheet});
ss.getRange('B4').setValue(dateI);
for (var i = 0; i < protections.length; i++) {
var sheet2 = ss.getSheetByName("Sheet - "+dateI);
var p = protections[i];
var rangeNotation = p.getRange().getA1Notation();
var p2 = sheet2.getRange(rangeNotation).protect();
p2.setDescription(p.getDescription());
p2.setWarningOnly(p.isWarningOnly());
}
}
}
提前谢谢! :)