我知道我可以将整个页面设置为受保护,但有没有办法让页面的名称受到保护?
我有一个依赖于工作表名称的应用程序脚本,所以我不希望任何人能够重命名它,但其他人仍然需要能够对工作表上的其他所有内容进行编辑访问。
谢谢!
答案 0 :(得分:1)
我认为不可能。
但是在您的脚本中,请改用sheet-id,这是唯一且不可更改的,除非删除并重新创建工作表。在这种情况下,你可以回退到它的名字,或者只是可以理解的失败。像这样:
function getSheetById(id) {
var sheets = SpreadsheetApp.getActive().getSheets();
for( var i in sheets )
if( sheets[i].getSheetId() == id )
return sheets[i];
throw new Error('Sheet with id "'+id+'" not found.');
}
然后参数化并使用此getSheetById
函数,而不是使用它们的名称。您可以通过选择它并查看浏览器的位置栏来查看工作表ID。这是#gid =' #gid ='部分。您可以使用以下代码在代码中确认:
function logId() {
Logger.log(SpreadsheetApp.getActive().getSheetByName('Sheet1').getSheetId());
//click View > Logs
}