我已经创建了一个电子表格并添加了一些值,我试图捕获单元格范围内最后一个编辑的单元格的时间戳。下面的脚本完美地完成了这项工作,但是只有当我手动运行该脚本(即当我按下编辑器中的“运行”按钮时),这种操作才能达到目的。我想念什么?
我的代码:
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");
}
};
答案 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触发器仅在用户编辑时触发。