我想知道是否有办法“给”谷歌电子表格中的某个人一个单元格?我有一个电子表格,任何人都可以写他们想要的,任何人都可以编辑他们想要的。我想添加一个函数,使它成为可能,只有“作者”的单元格才能编辑它。
例如,无名氏在"B5“单元格中写道”我想要一根香蕉“。无名氏在"B6“中写着”我想要一个苹果“。约翰不想把苹果给简,所以他编辑了"B6“,并把课文改为”我不想要苹果“。
我想阻止约翰编辑简的手机。我想确保只有约翰能编辑他的手机,简可以编辑她的手机。我希望它自动发生。
有人知道我是怎么做到的吗?
发布于 2015-10-22 16:49:53
手动方式
您可以继续保护单个范围。
右击>保护范围>设置权限>限制谁可以编辑此范围>自定义
并输入允许修改该单元格的电子邮件地址。
管理批量方式
如果您想查看一堆名称和电子邮件地址,也可以在函数中这样做:
var ranges = [["A1", "someone@a.com"],
["A2", "someoneElse@b.com"]];
function setEditRights(){
for (var i = 0; i < ranges.length; i++){
protect(ranges[i][0], ranges[i][1]);
}
}
function protect(range, emailAddress){
SpreadsheetApp.getActiveSpreadsheet()
.getActiveSheet()
.getRange(range)
.protect()
.addEditor(emailAddress);
}自助方式
另一种选择是允许用户为自己预留单元格,您可以这样做:
function setAccess(){
SpreadsheetApp.getActiveSpreadsheet()
.getActiveSheet()
.getActiveRange()
.protect()
.addEditor(Session.getActiveUser().getEmail());
}添加一个菜单的函数
function onOpen(){
var ui = SpreadsheetApp.getUi();
ui.createMenu('Reserve a Range')
.addItem('Reserve current Range', 'setAccess')
.addToUi();
}这将允许用户选择一个单元格或范围,并将其锁定为仅供自己和您作为所有者进行访问。然而,这基本上只是第一种方法的一种更为传统的捷径。
https://stackoverflow.com/questions/33286023
复制相似问题