我想知道是否有任何方法可以将单元格“提供”给Google Spreadsheet中的某个人?我有一个电子表格,任何人都可以写他们想要的东西,任何人都可以编辑他们想要的东西。我想添加一个函数,使得只有单元格的“作者”才能对其进行编辑。
例如。
John Doe在单元格“ B5”中写了“我想要一个香蕉”。 Jane Doe在单元格“ B6”中写了“我想要一个苹果”。约翰不想给简给苹果,所以他编辑了“ B6”并将文本更改为“我不想要苹果。
我要防止约翰编辑Janes单元格。我想确保只有John可以编辑他的单元格,而Jane可以编辑她的单元格。我希望它能够自动发生。
有人知道我该怎么做吗?
最佳答案
手动方式
您可以通过继续保护单个范围
右键单击>保护范围>设置权限>限制谁可以编辑
此范围>自定义
并输入允许修改该单元格的电子邮件地址。
管理员批量方式
如果您想输入一堆名称和电子邮件地址,也可以在函数中执行此操作:
var ranges = [["A1", "[email protected]"],
["A2", "[email protected]"]];
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();
}
这将允许用户选择一个单元格或范围并将其锁定,以供自己和作为所有者的您访问。但是,从根本上讲,它只是第一种方法的一种更方便的快捷方式。