代码之家  ›  专栏  ›  技术社区  ›  A. Willis

Google脚本:具有onEdit时间戳静态

  •  0
  • A. Willis  · 技术社区  · 9 年前

    每当数据添加到工作表时,我都试图在列中显示时间戳。我在以下脚本中取得了一些成功:

    function onEdit(e) {
    
    var colToWatch = 2, colToStamp = 1;
    if (e.range.columnStart !== colToWatch) return;
    var writeVal = e.value ? new Date() : '';
    e.source.getActiveSheet()
        .getRange(e.range.rowStart, colToStamp)
        .setValue(writeVal);
    }
    

    我的问题是,每次编辑第2列中的文本时,时间戳都会更改为当前时间。

    我希望它有一个时间戳,显示文本最初添加的时间(因此可以在另一个工作表中按该日期组织)。其他人可以访问此表,可能会意外更改某些内容,并导致按日期组织的表发生更改。

    我不熟悉脚本编写,是否可以只在第一次添加数据时运行onEdit?似乎onChange()可以帮助我,但我还没有找到任何东西。

    1 回复  |  直到 9 年前
        1
  •  0
  •   Robin Gertenbach    9 年前

    基本上,如果时间戳单元格已填充,则希望终止。

    if (e.source
         .getActiveSheet()
         .getRange(e.range.rowStart, colToStamp)
         .getValue()) {
      return;
    }