【发布时间】:2015-06-04 09:29:05
【问题描述】:
当有人通过复制我的模板创建新电子表格时,我想实施一个脚本来在电子表格的不同选项卡上实施范围保护。
我遇到的问题是脚本运行保护实现时。
我的代码似乎很好,因为调试工具没有发现任何问题,但是,我的脚本只实现了第一个受保护的范围。
这里是示例:
function rangeProtect() {
var s = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
if(s.getName()=='Overview') {
var range = s.getRange('A1:K20');
var protection = range.protect().setDescription('Overview');
var me = Session.getEffectiveUser();
var eds = protection.getEditors();
protection.addEditor(me);
protection.removeEditors(eds);
if (protection.canDomainEdit()) {
protection.setDomainEdit(false);
}
}
else if(s.getName()=='Picklist (Buying Ops)') {
var range = s.getRange('A1:H254');
var protection = range.protect().setDescription('Picklist');
var range2 = s.getRange('C5:H254')
var protection2 = range2.protect().setDescription('Buying Ops');
var me = Session.getEffectiveUser();
var eds = protection.getEditors();
var add = raw[11];
protection.addEditor(me);
protection.removeEditors(eds);
protection2.addEditor(add);
if (protection.canDomainEdit()) {
protection.setDomainEdit(false);
}
}
...
有人可以帮我解决这个问题,因为我看不出这里有什么问题。
谢谢
【问题讨论】:
-
var protection2 = range2..protect().setDescription('Buying Ops');删除此行上的一个点。似乎也没有定义 raw[11]。
-
@AkshinJalilov,感谢您举报。但我的问题还是一样,脚本不会运行
-
在两个语句中将 **s.getName()== ** 更改为 **s.getName()=== **。您可以阅读here 了解不同之处。
标签: function google-apps-script google-sheets spreadsheet