四个月前,用户Cooper很乐意向我提供以下代码。 尽管效果很好,但是我有两个问题。
1。)为了触发onEdit函数,我需要按两次键盘上的Delete键。 只需按一下即可清空单元格值。有什么解决方法吗?
2。)仅编辑活动单元格,而不编辑我绘制的范围选择。有没有办法让onEdits编辑整个范围?
非常感谢您的协助。
function onEdit(e) {
var sh=e.range.getSheet();
//e.source.toast(' e.value: ' + e.value);
if(sh.getName()!='Sheet4'){return;}
if(e.range.rowStart<31 && e.range.columnStart<9 && !e.value) { //if in the range of A1:H30 and new value is blank
var rg=sh.getRange(e.range.rowStart,e.range.columnStart);
rg.setFormula("=Sheet2!" + rg.getA1Notation());
//e.source.toast('A1: ' + rg.getA1Notation() + ' e.value: ' + e.value);
}
}
答案 0 :(得分:0)
正如@Tedinoz在评论中所这样回答:
“有没有办法使onEdits编辑整个范围?”
您正在使用rowStart和columnStart。
有两种选择: 1.只需使用e.range 2.也有rowEnd和columnEnd;只需将它们添加到“ IF”语句中即可。
您可以使用Logger.log(JSON.stringify(e))查看事件对象
“我需要按两次键盘上的Delete键”
这不是我的经验。如果我选择一个单元格;按Delete键;在Sheets注册正在保存表单的过程中,请稍等片刻;然后查看日志,发现编辑已记录。