首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“私有”细胞

“私有”细胞
EN

Stack Overflow用户
提问于 2015-10-22 16:31:43
回答 1查看 49关注 0票数 0

我想知道是否有办法“给”谷歌电子表格中的某个人一个单元格?我有一个电子表格,任何人都可以写他们想要的,任何人都可以编辑他们想要的。我想添加一个函数,使它成为可能,只有“作者”的单元格才能编辑它。

例如,无名氏在"B5“单元格中写道”我想要一根香蕉“。无名氏在"B6“中写着”我想要一个苹果“。约翰不想把苹果给简,所以他编辑了"B6“,并把课文改为”我不想要苹果“。

我想阻止约翰编辑简的手机。我想确保只有约翰能编辑他的手机,简可以编辑她的手机。我希望它自动发生。

有人知道我是怎么做到的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-22 16:49:53

手动方式

您可以继续保护单个范围。

右击>保护范围>设置权限>限制谁可以编辑此范围>自定义

并输入允许修改该单元格的电子邮件地址。

管理批量方式

如果您想查看一堆名称和电子邮件地址,也可以在函数中这样做:

代码语言:javascript
复制
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); 
}

自助方式

另一种选择是允许用户为自己预留单元格,您可以这样做:

代码语言:javascript
复制
function setAccess(){
  SpreadsheetApp.getActiveSpreadsheet()
                .getActiveSheet()
                .getActiveRange()
                .protect()
                .addEditor(Session.getActiveUser().getEmail()); 
}

添加一个菜单的函数

代码语言:javascript
复制
function onOpen(){
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Reserve a Range')
      .addItem('Reserve current Range', 'setAccess')
      .addToUi();
}

这将允许用户选择一个单元格或范围,并将其锁定为仅供自己和您作为所有者进行访问。然而,这基本上只是第一种方法的一种更为传统的捷径。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33286023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档