Как я могу выполнить поиск по столбцу для любого значения и переместить строку на другой лист с помощью скрипта Google Apps?

#google-apps-script #google-sheets #google-forms

Вопрос:

Цель, которую я пытаюсь достичь, состоит в том, чтобы сравнить все значения в столбце, и если значение НЕ пустое, переместите всю строку на другой лист и удалите строку с первого листа. Я очень новичок в этом, и я знаю, что мой код неполон для достижения цели, но пока это то, что у меня есть:

 function onEdit(event) {

  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const row = event.range.getRow();
  const col = event.range.getColumn();
  const as = event.source.getActiveSheet();
  const numColumns = as.getLastColumn();
  const targetSheet = ss.getSheetByName("Sheet2");
  const target = targetSheet.getRange(targetSheet.getLastRow()   1, 1);

  if(as.getName() == "Form Responses 1" amp;amp; as.getRange(row,19) == "") {

   as.getRange(row, 1, 1, numColumns).moveTo(target);
   //as.deleteRow(row);
}
}
 

Ответ №1:

 function onEdit(e) {
  const sh = e.range.getSheet();
  if (sh.getName() == "Form Responses 1" amp;amp; sh.getRange(e.range.rowStart, 19).getValue() != "") {
    const tsh = ss.getSheetByName("Sheet2");
    const trg = tsh.getRange(tsh.getLastRow()   1, 1);
    sh.getRange(e.range.rowStart, 1, 1, sh.getLastColumn()).copyTo(trg);
  }
}
 

Тогда вы, вероятно, тоже не сможете удалить

Комментарии:

1. Я получаю сообщение об ошибке: «Исключение: не удается вырезать данные из формы. Используйте вместо этого копирование» Есть какая-нибудь помощь?