仅当我手动运行脚本时,OnEdit()函数才会运行

时间:2019-12-11 02:36:43

标签: google-apps-script google-sheets google-apps-script-simple-triggers

我已经创建了一个电子表格并添加了一些值,我试图捕获单元格范围内最后一个编辑的单元格的时间戳。下面的脚本完美地完成了这项工作,但是只有当我手动运行该脚本(即当我按下编辑器中的“运行”按钮时),这种操作才能达到目的。我想念什么?

我的代码:

function OnEdit(e) {

  var ss = SpreadsheetApp.getActiveSheet();
  var r = ss.getActiveCell();
  if(r.getColumn() > 7 && r.getColumn() <= 13 && ss.getName()=='Moto') { 
  var celladdress ='Q'+ r.getRowIndex() 
  ss.getRange(celladdress).setValue(new Date()).setNumberFormat("MM/dd/yyyy hh:mm");
  }
};

2 个答案:

答案 0 :(得分:1)

函数名称应为onEdit-注意o是小写。试试这个:

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSheet();
  var r = ss.getActiveCell();
  if(r.getColumn() > 7 && r.getColumn() <= 13 && ss.getName()=='Moto') { 
    var celladdress ='Q'+ r.getRowIndex() 
    ss.getRange(celladdress).setValue(new Date()).setNumberFormat("MM/dd/yyyy hh:mm");
  }
}

答案 1 :(得分:1)

这与利用事件对象的功能相同。我假设您将onEdit()移至SO时拼写错误,因为它否则无法运行。格式字符串应为MM/dd/yyyy HH:mm

function onEdit(e) {
  var sh=e.range.getSheet();
  if(e.range.columnStart > 7 && e.range.columnStart <= 13 && sh.getName()=='Moto') { 
    sh.getRange(e.range.rowStart,17).setValue(new Date()).setNumberFormat("MM/dd/yyyy HH:mm");
  }
}

onEdit触发器仅在用户编辑时触发。

simple date format