【问题标题】:Scripts not running for shared users in Google SheetsGoogle 表格中未为共享用户运行的脚本
【发布时间】:2018-12-14 20:34:20
【问题描述】:

我为我和我的同事创建了一个电子表格,以便能够实时编辑我已经与他们共享的内容。我添加了时间戳功能,以便在编辑特定单元格后显示在 2 列中,并添加一个使用帮助表的一次性脚本。我遇到的问题是,当我保护主表或辅助表时,脚本不会为除我之外的任何人运行。有人可以帮我弄清楚如何保护两个工作表,但保留主工作表上的特定单元格以供编辑吗?

【问题讨论】:

  • 我做了一些研究,发现这可能是由于触发器需要许可。解决方案是安装这些触发器,以便它们以安装它们的人的身份运行,但我不太确定该怎么做。
  • 我遇到的问题是,当我单击查看所有触发器时,它没有列出任何触发器。我不确定为什么在工作表受到保护时无法运行我的函数。

标签: google-apps-script google-sheets


【解决方案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);
    }
  }
}

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

相反,您应该让工作表可编辑并仅限制您想要保护的行/列 + 为您想要可编辑的行/列提供编辑权限 - 并且它们不应干扰。

【讨论】:

  • 感谢您的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
相关资源
最近更新 更多