我需要用另一个单元格版本的时间戳填充google spreedsheet中的一个单元格。但是,只有在使用某些内容编辑另一个单元格而不是擦除该单元格的情况下,才应显示此时间戳。
我已经尝试过使用此代码,但是如果我擦除另一个单元格,也会显示时间戳。
function onEdit(e)
{
if ([8].indexOf(e.range.columnStart) != -1)
{
if ([8].indexOf(e.range.columnStart) === '')
{
e.range.offset(0, -7).setValue('0');
}
else
e.range.offset(0, -7).setValue(new Date()).setNumberFormat("yyMMdd HH:mm:ss");
}
}
答案 0 :(得分:0)
function onEdit(e) {
// Make sure our edit is a single cell in the H column
// and that our edit has a value
if(e.range.columnStart === 8 && e.value.length) {
e.range.offset(0, -7).setValue(new Date()).setNumberFormat("yyMMdd HH:mm:ss");
} else {
e.range.offset(0, -7).setValue('0');
}
}
更新后的条件现在执行3次检查:
e.range.columnStart === 8
确保我们从H列开始 e.value.length
确保
e.value
不可用(请参见:Edit section) [8].indexOf(e.range.columnStart) === ''
已删除,因为indexOf
无法返回空字符串。它将始终为false,这是所有修改都会更新时间戳的原因。
编辑:Documentation for columnStart,仍在寻找Google的官方来源。 e.range.getHeight() === 1 && e.range.getWidth() === 1 && e.range.getColumn() === 8
是经过验证的替代方案。