Google apps script OnEdit()函数仅在手动运行脚本时运行

Google apps script OnEdit()函数仅在手动运行脚本时运行,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,我已经创建了一个电子表格并添加了一些值,我正在尝试捕获单元格范围内最后编辑的单元格的时间戳。下面的脚本很好地完成了这项工作,但只有当我手动运行脚本时,也就是当我按下编辑器中的“run”按钮时,它才能完成这项工作,但这有点达不到目的。我错过了什么 我的代码: function OnEdit(e) { var ss = SpreadsheetApp.getActiveSheet(); var r = ss.getActiveCell(); if(r.getColumn() > 7

我已经创建了一个电子表格并添加了一些值,我正在尝试捕获单元格范围内最后编辑的单元格的时间戳。下面的脚本很好地完成了这项工作,但只有当我手动运行脚本时,也就是当我按下编辑器中的“run”按钮时,它才能完成这项工作,但这有点达不到目的。我错过了什么

我的代码:

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");
  }
};
函数OnEdit(e){
var ss=SpreadsheetApp.getActiveSheet();
var r=ss.getActiveCell();

如果(r.getColumn()>7&&r.getColumn()函数名应该是
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");
  }
}
函数onEdit(e){
var ss=SpreadsheetApp.getActiveSheet();
var r=ss.getActiveCell();

if(r.getColumn()>7&&r.getColumn()这是利用事件对象的同一个函数。我假设您在将OneEdit()移动到该位置时错放了OneEdit(),因为否则它不会运行。格式字符串应为
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(e){
var sh=e.range.getSheet();

如果(e.range.columnStart>7&&e.range.columnStart)您没有阅读,可能是我错了,但这不会取代编辑的范围值吗?您是对的。我倾向于在仔细阅读之前回答问题。抱歉编辑。我一时糊涂了。我需要更加小心