【问题标题】:How do I get the true range when editing multiple rows on Google Sheet via Google App Script通过 Google App Script 在 Google Sheet 上编辑多行时如何获得真实范围
【发布时间】:2020-04-02 12:14:11
【问题描述】:

我正在使用一段 Google 脚本从一个 Google 表格复制到另一个 Google 表格,但还进行了一些列和数据操作(所以它不仅仅是一个直接的副本)。

代码受到这个问题的启发:Event trigger to move row to one of two other sheets based on values in 2 columns

function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.range;
...
}

不幸的是,当您通过突出显示多个单元格并按空格键一次性选中多个复选框时,OnEdit event 对象只会检测到第一个单元格正在被编辑,而其他单元格没有被编辑。

我对此进行了测试:

Browser.msgBox(event.range.getNumRows())

无论我一次编辑多少个复选框;它总是返回1

有没有一种正确的方法来一次性编辑单元格的真实范围?

【问题讨论】:

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


【解决方案1】:

这似乎是一个错误!

我查看了 Google 的问题跟踪器,似乎在删除带有复选框的多个单元格时也会发生这种情况 - 只有第一个单元格的范围被传递给 e.range。以下是详细说明相同行为的报告:

这似乎与复选框范围传递给事件对象的方式有关。

Google 似乎确实知道这个问题,但如果它引起问题,您可以提交自己的错误 here 如上所述 Diego。

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

【讨论】:

  • 我不知道更糟糕的是,证明自己没有发疯,或者现在知道修复这个错误需要等待很痛苦的时间。
  • 我在合并单元格时遇到了同样的问题,并验证这也是字体问题。我想我必须找到一种解决方法,因为已经一年多没有太多活动了:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-24
  • 2020-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多