How to modify current insert timestamp script to remove timestamp when cell is cleared

瘦欲@ 提交于 2021-01-29 10:00:35

问题


I am currently using the following script to add a timestamp to a cell in Column H when cell in Column A is populated. Problem is, when I delete the contents of Column A the timestamp remains in Column H. I currently have conditional formatting to hide the timestamp if the cell is empty but I really need the contents to be deleted. How do I modify my current script to accomplish this?


 function onEdit(event) {
 var sheet = SpreadsheetApp.getActiveSheet();
 if(sheet.getName() == "CHECK OUT" || sheet.getName() == "CHECK IN" || sheet.getName() == "MISC OUT" || sheet.getName() == "MISC IN"){
  var eventRange = event.range;
  if (eventRange.getColumn() == 1) { // 1 == column A
    var columnARange = SpreadsheetApp.getActiveSheet().getRange(eventRange.getRow(), 8, eventRange.getNumRows(), 8);
    var values = columnARange.getValues();
    for (var i = 0; i < values.length; i++) {
       values[i][0] = new Date();
}
columnARange.setValues(values);
   }
 }}

回答1:


Try this:

function onEdit(e) {
  var rg=e.range;
  var sh=e.range.getSheet();
  var name=sh.getName();
  if(name=="CHECK OUT" || name== "CHECK IN" || name== "MISC OUT" || name=="MISC IN"){  
    if(rg.columnStart==1) {
      var vA=rg.getValues();
      for(var i=0;i<vA.length;i++){
        if(vA[i][0]) {
          sh.getRange(rg.rowStart + i,8).setValue(new Date());
        }else{
          sh.getRange(rg.rowStart + i,8).setValue('');    
        }
      }
    }
  }
}


来源:https://stackoverflow.com/questions/54259009/how-to-modify-current-insert-timestamp-script-to-remove-timestamp-when-cell-is-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!