#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); }