在创建脚本以在 GSheet 上自动化时间戳时遇到了一些麻烦。我有 2 列 - AD 和 AE,我希望它具有更新 L 和 AA 列的日期时间戳。已尝试以下脚本,但似乎不起作用。
function onEdit(e) {
addTimestamp(e);
}
function addTimestamp(e){
var startRow = 3;
var targetColumn = 12;
var targetColumn2 = 27;
var ws = "Brand List";
var row = e.range.getRow();
var col = e.range.getColumn();
if (col === targetColumn && row >= startRow && e.source.getActiveSheet().getName() === ws) {
var currentDate = new Date();
e.source.getActiveSheet().getRange(row,30).setValue(currentDate)
}
if (col === targetColumn2 && row >= startRow && e.source.getActiveSheet().getName() === ws) {
var currentDate = new Date();
e.source.getActiveSheet().getRange(row,31).setValue(currentDate)
}
}
您的脚本运行良好,但您似乎收到一条错误消息,说TypeError: Cannot read property 'range' of undefined
.
发生这种情况是因为只要编辑电子表格,脚本就会使用触发器来执行函数onEdit()
。执行时,此触发器会将事件对象 ( e
) 作为参数传递给函数,其中包括诸如被编辑的单元格之类的数据。
但是,只有在编辑工作表时才会传递此事件对象,如果您从脚本编辑器运行该函数,则不会发生这种情况。因此,要使其工作,您需要像使用脚本时一样编辑工作表。
如果你真的想单独测试它,你需要显式创建这个事件对象并将它传递给onEdit()
函数:如何在 GAS 中测试触发器函数?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句