Google apps script Google Sheets脚本编写onEdit()+;复选框验证

Google apps script Google Sheets脚本编写onEdit()+;复选框验证,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,我在测试中发现,如果在范围被“删除”(按“Del”)时在选择中包含“复选框”数据验证,onEdit()参数的范围属性将只包含带有复选框的单元格 我认为可能函数onEdit实际上被调用了两次(一次额外的验证删除),但至少在我的测试中,情况并非如此。它还可以与其他类型的数据验证(即ListFromARange)一起正常工作 这是已知的吗?可以复制吗?如果这确实是一个问题,我应该向何处报告 要复制和复制的电子表格: 此函数必须在副本中取消注释才能复制: function onEdit(e) { e

我在测试中发现,如果在范围被“删除”(按“Del”)时在选择中包含“复选框”数据验证,onEdit()参数的范围属性将只包含带有复选框的单元格

我认为可能函数onEdit实际上被调用了两次(一次额外的验证删除),但至少在我的测试中,情况并非如此。它还可以与其他类型的数据验证(即ListFromARange)一起正常工作

这是已知的吗?可以复制吗?如果这确实是一个问题,我应该向何处报告

要复制和复制的电子表格:

此函数必须在副本中取消注释才能复制:

function onEdit(e) {
  e.source.getSheetByName("Sheet1").getRange(e.range.getRow(),4).setValue(e.range.getA1Notation());
}
试试这个:

进行选择并更改到第10列的左侧

function onEdit(e) {
  var sh=e.range.getSheet();
  for(var i=0;i<e.range.rowEnd-e.range.rowStart+1;i++) { 
    for(var j=0;j<e.range.columnEnd-e.range.columnStart+1;j++) {
      sh.getRange(e.range.rowStart+i,10).setValue(e.range.getA1Notation());
    }
  } 
}
函数onEdit(e){
var sh=e.range.getSheet();
对于(VARI=0;这似乎是一个bug!
正如塔奈克在评论中提到的,这似乎是应用程序脚本方面的意外行为。不管数据验证如何,文档中没有提到如果删除的单元格范围包含复选框,就会发生这种行为。因此,我冒昧地在谷歌的问题跟踪上报告了这一点呃,

你可以打电话☆ 在本页左上角的问题编号旁边,因为它让谷歌知道有更多的人遇到了这个问题,因此更有可能看到它更快


我希望这对您有帮助!

Hmmm..I得到了相同的结果?我发现只有当复选框位于没有任何其他内容的范围内,并且由于没有其他内容发生更改而导致发送时才会发生这种情况。Hmmm..I对我来说,即使该范围内有其他内容,也会发生这种情况,如示例表中的“s”填充C3。是的。我又玩了一些,你的权利,我得到的只是复选框的范围。好吧,我就离开它,希望@Tanaike会过来为我们解释一下。我认为这可能是一个bug。关于这一点,你可以向问题跟踪者报告这个问题。作为检索修改值和范围的当前解决方法s、 这样如何?1.创建临时电子表格。2.编辑当前电子表格时,会将当前电子表格的值与临时电子表格的值进行比较。在这里,可以检索差异。3.将当前值复制到临时电子表格。如果这不是您想要的方向,我很抱歉。
function onEdit(e) {
  var sh=e.range.getSheet();
  for(var i=0;i<e.range.rowEnd-e.range.rowStart+1;i++) { 
    for(var j=0;j<e.range.columnEnd-e.range.columnStart+1;j++) {
      sh.getRange(e.range.rowStart+i,e.range.columnStart+j).setValue(sh.getRange(e.range.rowStart+i,e.range.columnStart+j).getA1Notation());
    }
  }  
}