【问题标题】:How to time stamp when a cell was updated in Google Sheets using scripts?如何使用脚本在 Google 表格中更新单元格时添加时间戳?
【发布时间】:2021-04-22 12:35:06
【问题描述】:

我希望 B 列中的单元格在单元格列 A 被编辑/更新时添加时间戳

我有这个功能,但不幸的是每次重新加载电子表格时它都会更新

function getUpdate() {
  return new Date();
}

有没有办法可以用更新单元格的日期为它加上时间戳,但在重新加载时不能?非常感谢

【问题讨论】:

  • 这能回答你的问题吗? Automatic timestamp when a cell is filled out
  • 感谢@Diego,这真的很有帮助。我被困在这一行 - 而不是在下一列中插入日期,我希望它在 C 列的同一行中插入时间戳var nextCell = r.offset(0, 1);
  • 我想通了var nextCell = SpreadsheetApp.getActiveSheet().getRange('C' + r.getRow());

标签: javascript google-apps-script


【解决方案1】:

这可以完成工作。请注意,如果输入记录在第 6、7、8、9 列中,我已对其稍作修改以在 J 列中输入时间戳

在 Javascript 中是否有类似 Python 中的范围函数?

除了使用||,还有类似range(6, 10)的东西吗?

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "Projects" ) { //checks that we're on the correct sheet
    var r = s.getActiveCell();
    if( r.getColumn() == 6 || r.getColumn() == 7 || r.getColumn() ==  8 || r.getColumn() == 9 ) { //checks the column

      // var nextCell = r.offset(0,2);

      var nextCell = SpreadsheetApp.getActiveSheet().getRange('J' + r.getRow());


      // if( nextCell.getValue() === '' ) //is empty?
      nextCell.setValue(new Date());
    }
  }
}

【讨论】:

    【解决方案2】:
    function onEdit(e) {
      var s = e.range.getSheet();
      if( s.getName() == "Sheet1" && e.range.columnStart == 1 ) {           
         e.range.offset(0,2).setValue(new Date());
      }
    }
    

    【讨论】:

      【解决方案3】:

      关于您提出的解决方案以及您在那里问什么,您可以使用includes的方法:

      var range = [6,7,8,9]
      range.includes(col)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多