Данные автоматически отсутствуют в таблицах Google

#google-apps-script #google-sheets #google-sheets-formula #google-sheets-api #spreadsheet

Вопрос:

Я написал несколько сценариев в Google app script, чтобы переместить эту конкретную строку на основе определенного значения ячейки. Но удивительно, что некоторые строки автоматически отсутствуют. Эти строки исчезли и нигде не найдены на листе. Пожалуйста, помогите найти причину автоматического отсутствия данных. Код, который выполняется для этого, написан ниже.

 var sheet = ss.getSheetByName("Delhi Calls Amit");  var values = sheet.getRange(1, 22, sheet.getLastRow(), 1).getValues();  var moveRows = values.reduce(function(ar, e, i) {  if (e[0] == "Cancelled") ar.push(i   1);  return ar;  }, []);  var targetSheet = ss.getSheetByName("Happy Calling Delhi");  moveRows.forEach(function(e) {  sheet.getRange(e, 1, 1, sheet.getLastColumn()).moveTo(targetSheet.getRange(targetSheet.getLastRow()   1, 1));  });  moveRows.reverse().forEach(function(e) {sheet.deleteRow(e)});```  

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

1. Похоже, что ваш скрипт перемещает строки, содержащиеся в столбце «V» Cancelled , на целевой лист. И перемещенные строки удаляются. Поэтому я не могу понять But surprisingly some row are missing automatically. These rows are vanished amp; found no where in sheet. . Я приношу свои извинения за это. Чтобы правильно понять вашу текущую проблему, можете ли вы предоставить образец электронной таблицы для репликации вашей проблемы?

Ответ №1:

 function myfunck() {  const ss = SpreadsheetApp.getActive();  const sh = ss.getSheetByName("Delhi Calls Amit");  const vs = sh.getRange(1, 22, sh.getLastRow(), 1).getValues().filter(e =gt; e[0] == "Cancelled");  const tsh = ss.getSheetByName("Happy Calling Delhi");  tsh.getRange(tsh.getLastRow()   1,1,vs.length,vs[0].length).setValues(vs); }