Как сделать так, чтобы мой код onEdit распознавал вставленные данные в нескольких ячейках? - PullRequest
0 голосов
/ 23 декабря 2018

Я скопировал код из https://www.seerinteractive.com/blog/google-sheets-scripts/, чтобы переместить строки с одной вкладки на другую.Я изменил код, чтобы запускать его всякий раз, когда ячейка в указанном столбце редактировалась.Он работал как для ручного редактирования, так и для копирования вставленных данных, но когда я попытался скопировать данные на несколько ячеек в указанном столбце, он перемещает только первую ячейку в выделении, а остальные ячейки ниже не перемещаются.Также, когда я редактирую ячейку слишком быстро, она иногда не перемещает строку.

Я пытался использовать триггер onChange, но не могу понять, как заставить его работать.

function onEdit() {


  var sheetNameToWatch = "raw";
  var columnNumberToWatch = 16;
  // column A = 1, B = 2, etc…
  var valueToWatch = "1";
  var sheetNameToMoveTheRowTo = "data prep";

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getActiveCell();

  if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {
    var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
    var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRange);
    sheet.clearContents(range.getRow());
 }

1 Ответ

0 голосов
/ 23 декабря 2018

Вопрос состоит из двух частей

Что касается получения всех значений диапазона, используйте getValues ​​вместо getValue.Это вернет массив массивов (2D-массив).

Что касается триггера onEdit, который не запускается постоянно, это известное ограничение onEdit.О некоторых проблемах здесь уже сообщается в системе отслеживания проблем.

Связано

Ошибка многократного вызова функции Google App Script onEdit за секунду

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...