繁体   English   中英

基于多个单元格的 AutoTimeStamp

[英]AutoTimeStamp based on multiple cells

我有一个文档,当从 B 列到 G 列的任何单元格中输入数据时(从第 4 行开始),我希望 A 行有一个时间戳,表明该数据何时开始并且不更改。 但是,如果该行被清除,我希望删除时间戳并能够重新输入新数据。 我在多张纸上使用它。 我做了 IFS function 并且它有效,但是人们正在覆盖和删除它,所以我正在尝试编写脚本。 我尝试修改了一些我在网上找到的脚本,并使用了一些我记得的大学时代的东西,但效果并不好,我需要一些帮助。 谢谢!

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSheet();  
  var range = ss.getRangeList(['B4:B', 'C4:C','D4:D','E4:E', 'F4:F', 'G4:G']);
  if ( e.range) return;
  e.targetColumn = 1
  .setValue (new Date("HH:mm"));
}

function onEdit(e) {
  if ( e.range.columnStart !== 2 && e.range.columnStart !== 3 
    && e.range.columnStart !== 4 && e.range.columnStart !== 5 
    && e.range.columnStart !== 6 && e.range.columnStart !== 7) return;
e.range.targetColumn = 1
    .setValue(new Date());
}

(更新)试试这个:

function onEdit(e) {
  const sh = e.range.getSheet();
  if (sh.getName() == "Your sheet name" && e.range.columnStart > 1 && e.range.columnStart < 8 && e.range.rowStart > 3) {
    if(sh.getRange(e.range.rowStart,2,1,sh.getLastColumn() -1).isBlank() ) {
      sh.getRange(e.range.rowStart(),1).clearContent();
    } else {
      sh.getRange(e.range.rowStart,1).setValue(new Date());
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM