Как получить истинный диапазон при редактировании нескольких строк в Google Sheet через Google App Script - PullRequest
3 голосов
/ 02 апреля 2020

Я использую кусок Google Script для копирования из одного Google Sheet в другой Google Sheet, но также выполняю некоторые манипуляции со столбцами и данными (так что это не просто прямая копия).

Код был Вдохновлен этим вопросом: Триггер события для перемещения строки на один из двух других листов на основе значений в 2 столбцах

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

К сожалению, кажется, что при установке нескольких флажков в одном go выделив несколько ячеек и нажав клавишу пробела, объект OnEdit event обнаружит только первую ячейку как редактируемую, а остальные ячейки не редактируются.

Я проверил это, выполнив:

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

Независимо от того, сколько флажков я редактирую за один раз; он всегда возвращает 1

Есть ли правильный способ получить истинный диапазон отредактированных ячеек за один go?

Спасибо.

1 Ответ

2 голосов
/ 02 апреля 2020

Похоже, что это ошибка!

Я посмотрел на систему отслеживания проблем Google и похоже, что это также происходит при удалении нескольких ячеек с флажками - только диапазон первой ячейки передается e.range , Вот отчет, в котором подробно описан такой же тип поведения:

Похоже, что это проблема, связанная с тем, как диапазоны флажков передаются и объекту события.

Похоже, Google знает об этой проблеме, но если это вызывая проблемы, вы можете подать собственную ошибку об этом здесь как D iego, упомянутую выше.

Вы также можете нажать ☆ рядом с номером проблемы в левом верхнем углу на вышеупомянутых страницах, что позволяет Google знать, что с этим сталкивается больше людей, и поэтому вероятность того, что его увидят быстрее, будет выше.

Я надеюсь, что это полезно для вас!

...