如何在一张纸上放置两种不同类型的时间戳?

时间:2019-08-08 14:18:46

标签: google-apps-script

我需要在一张纸上跟随两种时间戳。​​

  1. 在同一单元中更新任何一个单元时的时间戳 工作表(不是工作簿)
  2. 一组单元格/列的逐单元时间戳。

我用于第一个时间戳记的脚本是:

function onEdit(e) {
   e.source.getActiveSheet()
       .getRange('G2')
       .setValue(new Date()).setNumberFormat("dd-MMM-yy at HH:mm");
}

我用于第二个时间戳记的脚本是:

function onEdit(e) {
  if ([3].indexOf(e.range.columnStart) != -1) {
    e.range.offset(0, 3).setValue(new Date());
  }
}

问题是,以上脚本无法一起使用。他们发生冲突。有什么解决的办法吗?

是否可以合并两个脚本?还是可以通过任何公式而不是脚本来实现?

FIND THE WORKSHEET WITH EDIT ACCESS

感谢任何帮助。

谢谢

2 个答案:

答案 0 :(得分:0)

我不确定您遇到的问题。您是否尝试过将它们物理组合?然后,您可以仅在第一个语句中添加一个if语句,以确保仅当已编辑的单元格位于特定工作表上时,才输入时间戳。 (这样一来,它就不会在编辑电子表格中的任何单元格时立即更新)

function onEdit(e) {
    var sheet = e.source.getActiveSheet()
    if (sheet.getName() === "Sheet Name"){
        sheet.getRange('G2').setValue(new Date()).setNumberFormat("dd-MMM-yy at HH:mm");
    }
    if ([3].indexOf(e.range.columnStart) != -1) {
        e.range.offset(0, 3).setValue(new Date());
    }
}

答案 1 :(得分:0)

触发器可以安装吗?

在这种情况下,应该给函数提供不同的名称,因为可安装的触发器适用于项目中的所有.gs文件,如果内部存在两个具有相同名称的函数,则会引起问题项目,即使它们位于不同的.gs文件中。

在任何情况下,如果您要执行不同的任务onEdit(),都应将它们全部合并到一个onEdit()函数中,正如已经指出的那样。