不在Google表格中为共享用户运行的脚本

时间:2018-12-14 20:34:20

标签: google-apps-script google-sheets

我为我和我的同事创建了一个电子表格,以便能够实时编辑我已经与他们共享的电子表格。我添加了时间戳记功能,一旦特定单元格被编辑后,时间戳就会显示在2列中,而使用帮助表的一次写入脚本也将显示在这两列中。我遇到的问题是,当我保护主表或帮助表时,除了我以外,其他任何人都无法运行脚本。有人可以帮我弄清楚如何保护这两张纸,但要保留主纸上的特定单元格以供编辑吗?

1 个答案:

答案 0 :(得分:1)

当在名为“ Sheet1”的工作表中手动编辑C列时,此函数在B列中添加日期。请注意,如果以编程方式编辑单元格,则onEdit触发器将不起作用:

function onEdit(e) {
  if(e.source.getActiveSheet().getName() == "Sheet1") { 
    if(e.range.columnStart == 3 && e.range.rowStart > 1) {
      var d = Utilities.formatDate(new Date(), "GMT+1", "dd.MM.yyyy");
      e.range.offset(0, -(e.range.columnStart - 2)).setValue(d);
    }
  }
}

关于权限-在您的情况下它们确实互相排斥,您不能禁止访问整个工作表并允许同时访问某些列/行。

相反,您应该使工作表具有可编辑性,并仅限制要保护的行/列,并提供对要编辑的行/列的编辑权限-并且它们不应干涉。