【问题标题】:OnEdit function not working for shared usersOnEdit 功能不适用于共享用户
【发布时间】:2020-08-13 15:13:06
【问题描述】:

我在 Google 电子表格中有以下 OnEdit 脚本,该脚本在编辑复选框时插入时间戳。该操作在我进行编辑时执行,但在其他用户进行编辑时不起作用。任何帮助表示赞赏。

function onEdit(e) {
  
  addTimestamp(e);
  
}
  

function addTimestamp(e){
  //variables
  var startRow = 3;
  var targetColumn = 6;
  var ws = "MasterList";
  
  //get modified row and column
  var row = e.range.getRow();
  var col = e. range.getColumn();
  
  if(col === targetColumn && row >= startRow && e.source.getActiveSheet().getName() === ws){
    e.source.getActiveSheet().getRange(row,19).setValue(new Date());
  }  
}

【问题讨论】:

  • 其他用户是否具有文件的写入/编辑权限,特别是在保存时间戳的单元格和正在编辑的单元格中?
  • 查看这篇文章以供参考:stackoverflow.com/questions/26317723/…
  • 请补充详细信息:脚本执行页面是否记录了消息?您如何与其他用户共享电子表格?除了这个问题中包含的内容之外,您的脚本是否包含其他内容?
  • 您的onEdit() 函数是可安装的还是简单的触发器?

标签: google-apps-script google-sheets triggers


【解决方案1】:

我看到几个案例在使用可能难以重现的活动方法的链接时遇到问题。

尝试替换

e.source.getActiveSheet().getName()

通过

e.range.getSheet().getName()

相关

【讨论】:

    【解决方案2】:

    只要编辑电子表格,就会运行 onEdit() 函数。您可以在 Tools > Script editor > View > Executions 下检查任何故障。

    在共享用户编辑下它无法工作的原因是那些用户没有编辑目标单元格的权限。这意味着你已经设置了单元格的保护。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-27
      • 2016-04-20
      • 2013-11-19
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      相关资源
      最近更新 更多