Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何通过谷歌应用程序脚本在谷歌工作表上编辑多行时获得真实范围_Google Apps Script_Google Sheets_Triggers - Fatal编程技术网

Google apps script 如何通过谷歌应用程序脚本在谷歌工作表上编辑多行时获得真实范围

Google apps script 如何通过谷歌应用程序脚本在谷歌工作表上编辑多行时获得真实范围,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,我正在使用一段谷歌脚本从一个谷歌工作表复制到另一个谷歌工作表,还做了一些列和数据操作(所以它不仅仅是一个直接的副本) 该代码受以下问题启发: 不幸的是,当您通过高亮显示多个单元格并按空格键一次选中多个复选框时,OneEdit事件对象似乎只会检测到第一个单元格正在编辑,而其他单元格则没有被编辑 我通过以下方式对此进行了测试: Browser.msgBox(event.range.getNumRows()) 无论我一次编辑了多少个复选框;它总是返回1 是否有一种正确的方法可以一次性获得编辑过的单元格

我正在使用一段谷歌脚本从一个谷歌工作表复制到另一个谷歌工作表,还做了一些列和数据操作(所以它不仅仅是一个直接的副本)

该代码受以下问题启发:

不幸的是,当您通过高亮显示多个单元格并按空格键一次选中多个复选框时,OneEdit
事件
对象似乎只会检测到第一个单元格正在编辑,而其他单元格则没有被编辑

我通过以下方式对此进行了测试:

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

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

是否有一种正确的方法可以一次性获得编辑过的单元格的真实范围

谢谢。

这似乎是一个bug! 我看了一下Google的问题跟踪程序,发现在删除带有复选框的多个单元格时也会出现这种情况——只有第一个单元格的范围会传递给
e.range
。下面是一份报告,详细描述了同样的行为:

这似乎是一个与复选框范围传递给事件对象的方式有关的问题

谷歌似乎确实知道这个问题,但如果它引起了问题,你可以像上面提到的迭戈那样提交你自己的bug

您还可以点击☆ 在上述页面左上角的发行号旁边,谷歌知道有更多的人遇到了这一问题,因此更有可能看到它更快


我希望这对你有帮助

看起来这是一个特定于复选框和空格键的bug。我建议向应用程序脚本团队提交一个bug,我不知道更糟的是什么,验证是否不疯狂,或者现在知道修复这个bug的痛苦等待时间。我在合并单元格时遇到了同样的问题,并验证了这也是字体的问题。我想我必须找到一个解决办法,因为已经一年多没有什么活动了:(
function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.range;
...
}