【问题标题】:Google Sheets scripting onEdit() + Checkbox validation谷歌表格脚本 onEdit() + 复选框验证
【发布时间】:2020-02-04 22:42:57
【问题描述】:

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

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

这是已知的吗?可以复制吗?如果确实是问题,我应该在哪里报告?

要复制和复制的电子表格:https://docs.google.com/spreadsheets/d/11X9JrD70j2pMdb8219gbkx_1nvokSweQSFZvNvRk8Rw/edit?usp=sharing

而且这个功能必须在文案中取消注释才能重现:

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

【问题讨论】:

  • 我认为这可能是一个错误。关于这一点,您可以将此问题报告给问题跟踪器。 developers.google.com/apps-script/support 作为检索修改后的值和范围的当前解决方法,这个怎么样? 1. 创建一个时间电子表格。 2.在编辑当前电子表格时,将当前电子表格的值与时间电子表格的值进行比较。在这里,可以检索差异。 3. 将当前值复制到临时电子表格。如果这不是您想要的方向,我很抱歉。

标签: google-apps-script google-sheets triggers


【解决方案1】:

这似乎是一个错误!

正如 Tanaike 在他的评论中提到的,这似乎是 Apps Script 方面的意外行为。无论数据验证如何,文档都没有提到如果删除的单元格范围包含复选框,则应该发生这种行为。因此,我冒昧地在 Google 的问题跟踪器上报告了这一点:

您可以点击此页面左上角问题编号旁边的 ☆,因为它可以让 Google 知道更多人正在遇到此问题,因此更有可能更快地被看到。

【讨论】:

    【解决方案2】:

    试试这个:

    进行选择并更改到第 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());
        }
      } 
    }
    

    这是一个有趣的玩。

    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());
        }
      }  
    }
    

    【讨论】:

    • 嗯.. 我得到了同样的结果?
    • 我发现只有当复选框处于没有其他任何内容的范围内时才会发生这种情况,并且因为没有其他内容发生变化而发送。
    • Hmmm.. 对我来说,即使范围内还有其他内容也会发生,如示例表中,其中“s”填充 C3。
    • 是的。我又玩了一些,你的权利我得到了复选框的范围。
    • 好吧,我就不说了,希望@Tanaike 过来为我们解释一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 2015-08-10
    相关资源
    最近更新 更多