Google脚本:onedit(e)e.value未将删除按键注册为编辑

四个月前,用户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);
  }  
}
huanghongwang123 回答:Google脚本:onedit(e)e.value未将删除按键注册为编辑

正如@Tedinoz在评论中所这样回答:

  

“有没有办法使onEdits编辑整个范围?”

您正在使用rowStart和columnStart。

有两种选择:  1.只需使用e.range  2.也有rowEnd和columnEnd;只需将它们添加到“ IF”语句中即可。

您可以使用Logger.log(JSON.stringify(e))查看事件对象

  

“我需要按两次键盘上的Delete键”

这不是我的经验。如果我选择一个单元格;按Delete键;在Sheets注册正在保存表单的过程中,请稍等片刻;然后查看日志,发现编辑已记录。

本文链接:https://www.f2er.com/3141365.html

大家都在问