[英]OnEdit() function runs only when I run the script manually
I've created a spreadsheet and added some values, I'm trying to capture the timestamp of the last edited cell within a range of cells.我创建了一个电子表格并添加了一些值,我正在尝试捕获一系列单元格内最后编辑的单元格的时间戳。 The below script does this job perfectly but only when I run the script manually that is when I press the "run" button in the editor, but that sort of defeats the purpose.下面的脚本完美地完成了这项工作,但只有当我手动运行脚本时,即当我按下编辑器中的“运行”按钮时,但这种方式违背了目的。 What am I missing?我错过了什么?
My code:我的代码:
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");
}
};
The function name should be onEdit
-- notice the o
is lowercase.函数名应该是onEdit
—— 注意o
是小写的。 Try this:尝试这个:
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");
}
}
This is the same function taking advantage of the event object.这是利用事件对象的相同功能。 I assumed that you mispelled onEdit() when you moved it to SO since it wouldn't run otherwise.我认为当你将它移动到 SO 时你拼错了 onEdit() 因为它不会以其他方式运行。 The format string should be MM/dd/yyyy HH:mm
格式字符串应为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");
}
}
The onEdit trigger only fires on User Edits. onEdit 触发器仅在用户编辑时触发。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.