Изменить код - удалить строку данных, на которые ссылается ячейка. Google Apps Script / Google Sheets - PullRequest
0 голосов
/ 17 февраля 2020

Я хотел бы изменить приведенный ниже код, чтобы вместо его исправления в коде - он удалял строку, основанную на определенной ячейке. Поэтому, если бы H2 «ожидал», он бы посмотрел на диапазон данных и удалил любую строку, которая содержала ожидаемый. затем, если вы измените H2 на «завершено», он запустит скрипт и удалит все строки, содержащие завершенные et c et c. Я буду запускать его из пользовательского меню.

 function DeleteText() {
 // This Code will delete any "Donation Sub-Task" in Column A.
 var sheet = SpreadsheetApp.getActive();
 sheet.setActiveSheet(sheet.getSheetByName('JIRA JQL QUERY - READ ONLY'), true);
 var rows = sheet.getDataRange();
 var numRows = rows.getNumRows();
 var values = rows.getValues();
 var rowsDeleted = 0;
 for (var i = 0; i <= numRows - 1; i++) {
 var row = values[i];
  if (row[0] == 'expected') {
 sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
 rowsDeleted++;
     }
   }
 };

Как всегда, Спасибо заранее

1 Ответ

2 голосов
/ 17 февраля 2020

Требование:

Скрипт для удаления строк в зависимости от значения в ячейке "H2".


Скрипт:

function findAndDeleteRows() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('JIRA JQL QUERY - READ ONLY');
  var range = sheet.getDataRange();
  var value = sheet.getRange('H2').getValue();
  var find = range.createTextFinder(value).findAll().reverse();
  if (find.length > 0) {
    for (i = 0; i < find.length; i++) {
      sheet.deleteRow(find[i].getRow());
    }
  }
}

Объяснение:

Мы можем использовать TextFinder, чтобы добиться этого довольно легко, он возвращает все строки, которые имеют ваш указанный c текст. Я использую Array.reverse(), чтобы строки удалялись снизу вверх, иначе вы получите строки, которые вы хотели сохранить. Получив все необходимые нам строки, мы можем через них l oop и использовать для их удаления .deleteRow().


Ссылки:

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