(Скрипт Google Sheets) Очистить определенные ячейки - PullRequest
0 голосов
/ 11 марта 2019

Моя компания поручила мне обновить наш лист. Сценарий должен очистить определенные ячейки подряд на основе значения другой ячейки. Мне удалось найти сценарий, который удаляет всю необходимую строку, однако вызывает проблему с остальной частью документа.

   function deleteRows() {
  var sheet = SpreadsheetApp.getActiveSheet();
  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[14] == '' && row[6] == 'PREBOOKED') { // This searches all cells in columns A (change to row[1] for columns B and so on) and deletes row if cell is empty or has value 'delete'.
      sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
      rowsDeleted++;
    }
  }
};

Можно ли изменить это, чтобы вместо удаления строки просто очищать содержимое ячеек D - P?

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

я смог сделать то, что мне нужно, со следующим:

       function deleteRows() {
  var sheet = SpreadsheetApp.getActiveSheet();
  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[14] == '' && row[6] == 'PREBOOKED') { // This searches all cells in columns A (change to row[1] for columns B and so on) and deletes row if cell is empty or has value 'delete'.
      sheet.getRange((parseInt(i)+1), 6).clearContent();
      sheet.getRange((parseInt(i)+1), 7).clearContent();
      sheet.getRange((parseInt(i)+1), 10).clearContent();
      sheet.getRange((parseInt(i)+1), 11).clearContent();
      sheet.getRange((parseInt(i)+1), 12).clearContent();
      rowsDeleted++;
    }
  }
};

спасибо за ваши идеи, ребята!

0 голосов
/ 11 марта 2019

При необходимости вы можете использовать приведенный ниже код с изменениями.

function deleteRows() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var values = sheet.getDataRange().getValues();

  values.forEach(function(v, i) {
    // get row index
    var row = i+1;
    // look for required values in cells
    if (v[14] == '' && v[6] == 'PREBOOKED') {
      // might have to modify this line based on Sheets API
      sheet.getRange('D'+row+':P'+row).clearContent();
    }
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...