'Private' 个单元格
'Private' cells
我想知道是否有任何方法可以在 Google 电子表格中 "give" 一个单元格给某人?我有一个电子表格,任何人都可以写他们想要的东西,任何人都可以编辑他们想要的东西。我想添加一个功能,使只有单元格的 "author" 可以编辑它。
例如
John Doe 在单元格 "B5" 中写入 "I want a banana"。 Jane Doe 在单元格 "B6" 中写入 "I want an apple"。约翰不想给简一个苹果,所以他编辑 "B6" 并将文本更改为“我不想要苹果。
我想阻止 John 编辑 Jane 的单元格。我想确保只有 John 可以编辑他的单元格,而 Jane 可以编辑她的单元格。我希望它自动发生。
有人知道我该怎么做吗?
手动方式
您可以继续保护单个范围
right click > Protect Range > Set Permissions > Restrict who can edit
this range > Custom
并输入允许修改该单元格的电子邮件地址。
管理员群发方式
如果您想遍历一堆姓名和电子邮件地址,也可以在函数中执行此操作:
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();
}
这将允许用户 select 一个单元格或范围并将其锁定为仅供他们自己和您作为所有者访问。然而,它基本上只是第一种方法的更方便的快捷方式。
我想知道是否有任何方法可以在 Google 电子表格中 "give" 一个单元格给某人?我有一个电子表格,任何人都可以写他们想要的东西,任何人都可以编辑他们想要的东西。我想添加一个功能,使只有单元格的 "author" 可以编辑它。
例如 John Doe 在单元格 "B5" 中写入 "I want a banana"。 Jane Doe 在单元格 "B6" 中写入 "I want an apple"。约翰不想给简一个苹果,所以他编辑 "B6" 并将文本更改为“我不想要苹果。
我想阻止 John 编辑 Jane 的单元格。我想确保只有 John 可以编辑他的单元格,而 Jane 可以编辑她的单元格。我希望它自动发生。
有人知道我该怎么做吗?
手动方式
您可以继续保护单个范围
right click > Protect Range > Set Permissions > Restrict who can edit this range > Custom
并输入允许修改该单元格的电子邮件地址。
管理员群发方式
如果您想遍历一堆姓名和电子邮件地址,也可以在函数中执行此操作:
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();
}
这将允许用户 select 一个单元格或范围并将其锁定为仅供他们自己和您作为所有者访问。然而,它基本上只是第一种方法的更方便的快捷方式。